精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用Python和GNU Octave繪制數據

開發 后端
數據科學是跨越編程語言的知識領域。有些語言以解決這一領域的問題而聞名,而另一些則鮮為人知。這篇文章將幫助你熟悉用一些流行的語言完成數據科學的工作。

[[317009]]

了解如何使用 Python 和 GNU Octave 完成一項常見的數據科學任務。

數據科學是跨越編程語言的知識領域。有些語言以解決這一領域的問題而聞名,而另一些則鮮為人知。這篇文章將幫助你熟悉用一些流行的語言完成數據科學的工作。

選擇 Python 和 GNU Octave 做數據科學工作

我經常嘗試學習一種新的編程語言。為什么?這既有對舊方式的厭倦,也有對新方式的好奇。當我開始學習編程時,我唯一知道的語言是 C 語言。那些年的編程生涯既艱難又危險,因為我必須手動分配內存、管理指針、并記得釋放內存。

后來一個朋友建議我試試 Python,現在我的編程生活變得輕松多了。雖然程序運行變得慢多了,但我不必通過編寫分析軟件來受苦了。然而,我很快就意識到每種語言都有比其它語言更適合自己的應用場景。后來我學習了一些其它語言,每種語言都給我帶來了一些新的啟發。發現新的編程風格讓我可以將一些解決方案移植到其他語言中,這樣一切都變得有趣多了。

為了對一種新的編程語言(及其文檔)有所了解,我總是從編寫一些執行我熟悉的任務的示例程序開始。為此,我將解釋如何用 Python 和 GNU Octave 編寫一個程序來完成一個你可以歸類為數據科學的特殊任務。如果你已經熟悉其中一種語言,從它開始,然后通過其他語言尋找相似之處和不同之處。這篇文章并不是對編程語言的詳盡比較,只是一個小小的展示。

所有的程序都應該在命令行上運行,而不是用圖形用戶界面(GUI)。完整的例子可以在 polyglot_fit 存儲庫中找到。

編程任務

你將在本系列中編寫的程序:

  • CSV 文件中讀取數據
  • 用直線插入數據(例如 f(x)=m ⋅ x + q
  • 將結果生成圖像文件

這是許多數據科學家遇到的常見情況。示例數據是 Anscombe 的四重奏的第一組,如下表所示。這是一組人工構建的數據,當用直線擬合時會給出相同的結果,但是它們的曲線非常不同。數據文件是一個文本文件,以制表符作為列分隔符,開頭幾行作為標題。此任務將僅使用第一組(即前兩列)。

 

Python 方式

Python 是一種通用編程語言,是當今最流行的語言之一(依據 TIOBE 指數RedMonk 編程語言排名編程語言流行指數GitHub Octoverse 狀態和其他來源的調查結果)。它是一種解釋型語言;因此,源代碼由執行該指令的程序讀取和評估。它有一個全面的標準庫并且總體上非常好用(我對這最后一句話沒有證據;這只是我的拙見)。

安裝

要使用 Python 開發,你需要解釋器和一些庫。最低要求是:

Fedora 安裝它們是很容易的:

  1. sudo dnf install python3 python3-numpy python3-scipy python3-matplotlib

代碼注釋

在 Python中,注釋是通過在行首添加一個 # 來實現的,該行的其余部分將被解釋器丟棄:

  1. # 這是被解釋器忽略的注釋。

fitting_python.py 示例使用注釋在源代碼中插入許可證信息,第一行是特殊注釋,它允許該腳本在命令行上執行:

  1. #!/usr/bin/env python3

這一行通知命令行解釋器,該腳本需要由程序 python3 執行。

需要的庫

在 Python 中,庫和模塊可以作為一個對象導入(如示例中的第一行),其中包含庫的所有函數和成員。可以通過使用 as 方式用自定義標簽重命名它們:

  1. import numpy as np
  2. from scipy import stats
  3. import matplotlib.pyplot as plt

你也可以決定只導入一個子模塊(如第二行和第三行)。語法有兩個(基本上)等效的方式:import module.submodulefrom module import submodule

定義變量

Python 的變量是在第一次賦值時被聲明的:

  1. input_file_name = "anscombe.csv"
  2. delimiter = "\t"
  3. skip_header = 3
  4. column_x = 0
  5. column_y = 1

變量類型由分配給變量的值推斷。沒有具有常量值的變量,除非它們在模塊中聲明并且只能被讀取。習慣上,不應被修改的變量應該用大寫字母命名。

打印輸出

通過命令行運行程序意味著輸出只能打印在終端上。Python 有 print() 函數,默認情況下,該函數打印其參數,并在輸出的末尾添加一個換行符:

  1. print("#### Anscombe's first set with Python ####")

在 Python 中,可以將 print() 函數與字符串類格式化能力相結合。字符串具有format 方法,可用于向字符串本身添加一些格式化文本。例如,可以添加格式化的浮點數,例如:

  1. print("Slope: {:f}".format(slope))

讀取數據

使用 NumPy 和函數 genfromtxt() 讀取 CSV 文件非常容易,該函數生成 NumPy 數組

  1. data = np.genfromtxt(input_file_name, delimiter = delimiter, skip_header = skip_header)

在 Python 中,一個函數可以有數量可變的參數,你可以通過指定所需的參數來傳遞一個參數的子集。數組是非常強大的矩陣狀對象,可以很容易地分割成更小的數組:

  1. x = data[:, column_x]
  2. y = data[:, column_y]

冒號選擇整個范圍,也可以用來選擇子范圍。例如,要選擇數組的前兩行,可以使用:

  1. first_two_rows = data[0:1, :]

擬合數據

SciPy 提供了方便的數據擬合功能,例如 linregress() 功能。該函數提供了一些與擬合相關的重要值,如斜率、截距和兩個數據集的相關系數:

  1. slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)
  2.  
  3. print("Slope: {:f}".format(slope))
  4. print("Intercept: {:f}".format(intercept))
  5. print("Correlation coefficient: {:f}".format(r_value))

因為 linregress() 提供了幾條信息,所以結果可以同時保存到幾個變量中。

繪圖

Matplotlib 庫僅僅繪制數據點,因此,你應該定義要繪制的點的坐標。已經定義了 xy 數組,所以你可以直接繪制它們,但是你還需要代表直線的數據點。

  1. fit_x = np.linspace(x.min() - 1, x.max() + 1, 100)

linspace() 函數可以方便地在兩個值之間生成一組等距值。利用強大的 NumPy 數組可以輕松計算縱坐標,該數組可以像普通數值變量一樣在公式中使用:

  1. fit_y = slope * fit_x + intercept

該公式在數組中逐元素應用;因此,結果在初始數組中具有相同數量的條目。

要繪圖,首先,定義一個包含所有圖形的圖形對象

  1. fig_width = 7 #inch
  2. fig_height = fig_width / 16 * 9 #inch
  3. fig_dpi = 100
  4.  
  5. fig = plt.figure(figsize = (fig_width, fig_height), dpi = fig_dpi)

一個圖形可以畫幾個圖;在 Matplotlib 中,這些圖被稱為。本示例定義一個單軸對象來繪制數據點:

  1. ax = fig.add_subplot(111)
  2.  
  3. ax.plot(fit_x, fit_y, label = "Fit", linestyle = '-')
  4. ax.plot(x, y, label = "Data", marker = '.', linestyle = '')
  5.  
  6. ax.legend()
  7. ax.set_xlim(min(x) - 1, max(x) + 1)
  8. ax.set_ylim(min(y) - 1, max(y) + 1)
  9. ax.set_xlabel('x')
  10. ax.set_ylabel('y')

將該圖保存到 PNG 圖形文件中,有:

  1. fig.savefig('fit_python.png')

如果要顯示(而不是保存)該繪圖,請調用:

  1. plt.show()

此示例引用了繪圖部分中使用的所有對象:它定義了對象 fig 和對象 ax。這在技術上是不必要的,因為 plt 對象可以直接用于繪制數據集。《Matplotlib 教程》展示了這樣一個接口:

  1. plt.plot(fit_x, fit_y)

坦率地說,我不喜歡這種方法,因為它隱藏了各種對象之間發生的重要交互。不幸的是,有時官方的例子有點令人困惑,因為他們傾向于使用不同的方法。在這個簡單的例子中,引用圖形對象是不必要的,但是在更復雜的例子中(例如在圖形用戶界面中嵌入圖形時),引用圖形對象就變得很重要了。

結果

命令行輸入:

  1. #### Anscombe's first set with Python ####
  2. Slope: 0.500091
  3. Intercept: 3.000091
  4. Correlation coefficient: 0.816421

這是 Matplotlib 產生的圖像:

 

Plot and fit of the dataset obtained with Python

GNU Octave 方式

GNU Octave 語言主要用于數值計算。它提供了一個簡單的操作向量和矩陣的語法,并且有一些強大的繪圖工具。這是一種像 Python 一樣的解釋語言。由于 Octave 的語法幾乎兼容 MATLAB,它經常被描述為一個替代 MATLAB 的免費方案。Octave 沒有被列為最流行的編程語言,而 MATLAB 則是,所以 Octave 在某種意義上是相當流行的。MATLAB 早于 NumPy,我覺得它是受到了前者的啟發。當你看這個例子時,你會看到相似之處。

安裝

fitting_octave.m 的例子只需要基本的 Octave 包,在 Fedora 中安裝相當簡單:

  1. sudo dnf install octave

代碼注釋

在 Octave 中,你可以用百分比符號(%)為代碼添加注釋,如果不需要與 MATLAB 兼容,你也可以使用 #。使用 # 的選項允許你編寫像 Python 示例一樣的特殊注釋行,以便直接在命令行上執行腳本。

必要的庫

本例中使用的所有內容都包含在基本包中,因此你不需要加載任何新的庫。如果你需要一個庫,語法pkg load module。該命令將模塊的功能添加到可用功能列表中。在這方面,Python 具有更大的靈活性。

定義變量

變量的定義與 Python 的語法基本相同:

  1. input_file_name = "anscombe.csv";
  2. delimiter = "\t";
  3. skip_header = 3;
  4. column_x = 1;
  5. column_y = 2;

請注意,行尾有一個分號;這不是必需的,但是它會抑制該行結果的輸出。如果沒有分號,解釋器將打印表達式的結果:

  1. octave:1> input_file_name = "anscombe.csv"
  2. input_file_name = anscombe.csv
  3. octave:2> sqrt(2)
  4. ans = 1.4142

打印輸出結果

強大的函數 printf() 是用來在終端上打印的。與 Python 不同,printf() 函數不會自動在打印字符串的末尾添加換行,因此你必須添加它。第一個參數是一個字符串,可以包含要傳遞給函數的其他參數的格式信息,例如:

  1. printf("Slope: %f\n", slope);

在 Python 中,格式是內置在字符串本身中的,但是在 Octave 中,它是特定于 printf() 函數。

讀取數據

dlmread() 函數可以讀取類似 CSV 文件的文本內容:

  1. data = dlmread(input_file_name, delimiter, skip_header, 0);

結果是一個矩陣對象,這是 Octave 中的基本數據類型之一。矩陣可以用類似于 Python 的語法進行切片:

  1. x = data(:, column_x);
  2. y = data(:, column_y);

根本的區別是索引從 1 開始,而不是從 0 開始。因此,在該示例中,x 列是第一列。

擬合數據

要用直線擬合數據,可以使用 polyfit() 函數。它用一個多項式擬合輸入數據,所以你只需要使用一階多項式:

  1. p = polyfit(x, y, 1);
  2.  
  3. slope = p(1);
  4. intercept = p(2);

結果是具有多項式系數的矩陣;因此,它選擇前兩個索引。要確定相關系數,請使用 corr() 函數:

  1. r_value = corr(x, y);

最后,使用 printf() 函數打印結果:

  1. printf("Slope: %f\n", slope);
  2. printf("Intercept: %f\n", intercept);
  3. printf("Correlation coefficient: %f\n", r_value);

繪圖

與 Matplotlib 示例一樣,首先需要創建一個表示擬合直線的數據集:

  1. fit_x = linspace(min(x) - 1, max(x) + 1, 100);
  2. fit_y = slope * fit_x + intercept;

與 NumPy 的相似性也很明顯,因為它使用了 linspace() 函數,其行為就像 Python 的等效版本一樣。

同樣,與 Matplotlib 一樣,首先創建一個對象,然后創建一個對象來保存這些圖:

  1. fig_width = 7; %inch
  2. fig_height = fig_width / 16 * 9; %inch
  3. fig_dpi = 100;
  4.  
  5. fig = figure("units", "inches",
  6.              "position", [1, 1, fig_width, fig_height]);
  7.  
  8. ax = axes("parent", fig);
  9.  
  10. set(ax, "fontsize", 14);
  11. set(ax, "linewidth", 2);

要設置軸對象的屬性,請使用 set() 函數。然而,該接口相當混亂,因為該函數需要一個逗號分隔的屬性和值對列表。這些對只是代表屬性名的一個字符串和代表該屬性值的第二個對象的連續。還有其他設置各種屬性的函數:

  1. xlim(ax, [min(x) - 1, max(x) + 1]);
  2. ylim(ax, [min(y) - 1, max(y) + 1]);
  3. xlabel(ax, 'x');
  4. ylabel(ax, 'y');

繪圖是用 plot() 功能實現的。默認行為是每次調用都會重置坐標軸,因此需要使用函數 hold()

  1. hold(ax, "on");
  2.  
  3. plot(ax, fit_x, fit_y,
  4.      "marker", "none",
  5.      "linestyle", "-",
  6.      "linewidth", 2);
  7. plot(ax, x, y,
  8.      "marker", ".",
  9.      "markersize", 20,
  10.      "linestyle", "none");
  11.  
  12. hold(ax, "off");

此外,還可以在 plot() 函數中添加屬性和值對。legend 必須單獨創建,標簽應手動聲明:

  1. lg = legend(ax, "Fit", "Data");
  2. set(lg, "location", "northwest");

最后,將輸出保存到 PNG 圖像:

  1. image_size = sprintf("-S%f,%f", fig_width * fig_dpi, fig_height * fig_dpi);
  2. image_resolution = sprintf("-r%f,%f", fig_dpi);
  3.  
  4. print(fig, 'fit_octave.png',
  5.       '-dpng',
  6.       image_size,
  7.       image_resolution);

令人困惑的是,在這種情況下,選項被作為一個字符串傳遞,帶有屬性名和值。因為在 Octave 字符串中沒有 Python 的格式化工具,所以必須使用 sprintf() 函數。它的行為就像 printf() 函數,但是它的結果不是打印出來的,而是作為字符串返回的。

在這個例子中,就像在 Python 中一樣,圖形對象很明顯被引用以保持它們之間的交互。如果說 Python 在這方面的文檔有點混亂,那么 Octave 的文檔就更糟糕了。我發現的大多數例子都不關心引用對象;相反,它們依賴于繪圖命令作用于當前活動圖形。全局根圖形對象跟蹤現有的圖形和軸。

結果

命令行上的結果輸出是:

  1. #### Anscombe's first set with Octave ####
  2. Slope: 0.500091
  3. Intercept: 3.000091
  4. Correlation coefficient: 0.816421

它顯示了用 Octave 生成的結果圖像。

 

Plot and fit of the dataset obtained with Octave

接下來

Python 和 GNU Octave 都可以繪制出相同的信息,盡管它們的實現方式不同。如果你想探索其他語言來完成類似的任務,我強烈建議你看看 Rosetta Code。這是一個了不起的資源,可以看到如何用多種語言解決同樣的問題。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2010-01-22 11:06:03

GNUkFreeBSDLinux

2022-10-18 23:53:20

Python數據Matplotlib

2020-08-25 19:56:43

MinGWWindowsGNU

2021-05-13 12:46:54

GNU ScreenLinux

2013-06-14 11:18:41

Fedora Gnu PG 代理

2016-09-28 21:50:29

GNUAutotoolLinux

2023-05-26 00:31:13

數據維度5D散點圖

2010-12-12 11:27:00

PGP使用指南

2011-06-07 10:15:38

GNULinux

2021-04-26 07:53:04

繪制流程任務

2022-07-22 12:45:39

GNU

2016-09-12 14:42:24

LinuxOctave音頻文件

2020-06-12 14:20:34

編程語言PythonJava

2014-05-09 10:42:38

GNULinux

2009-06-29 09:44:39

LinuxDebianGNU

2009-12-14 13:31:56

GNULinuxvmware

2018-11-06 10:53:10

2022-04-12 17:39:14

Linux磁盤分區

2009-12-10 16:26:49

GNULinux

2009-12-15 13:42:22

GNU計劃
點贊
收藏

51CTO技術棧公眾號

国产999精品久久久| 日韩欧美在线网站| 亚洲欧美成人一区| 国产av一区二区三区| 国产一区日韩欧美| 日韩电影中文 亚洲精品乱码| 欧美少妇性生活视频| 麻豆传媒在线观看| 成人一道本在线| 日本欧美一二三区| 国产极品国产极品| 欧美**vk| 日韩精品一区二区三区四区 | 超免费在线视频| 国产精品久久久久久无人区 | 欧美日韩在线亚洲一区蜜芽| 男女啪啪的视频| 日韩专区一区二区| 国产一区二区毛片| 日韩免费av在线| 国产一级av毛片| 日韩av在线播放网址| 亚洲国产91色在线| 亚洲综合20p| 精品91久久| 性欧美疯狂xxxxbbbb| 中国成人在线视频| 久久久pmvav| 国产成人免费av在线| 国产精品美女在线观看| 在线观看免费av片| 欧美精品黄色| 久久久999精品视频| 精品人妻一区二区三区蜜桃视频 | 免费在线成人av电影| xxxx18国产| 久久99精品国产| 国产精国产精品| 国产一级精品视频| 久久久久久久福利| 99久久精品无码一区二区毛片| 日本韩国精品一区二区在线观看| 亚洲v日本v欧美v久久精品| 91香蕉亚洲精品| 最近中文在线观看| 久久精品一区二区国产| 97香蕉久久超级碰碰高清版| 免费人成年激情视频在线观看| 欧美freesextv| 在线午夜精品自拍| 国产一二三四区在线| 香蕉久久夜色精品国产更新时间| 亚洲第一偷拍网| www.黄色网| 91精品导航| 精品久久久三级丝袜| 国产探花一区二区三区| 欧美经典一区| 日韩欧美国产一区二区三区 | 麻豆视频在线看| 午夜久久久久久| 九色自拍视频在线观看| 久久香蕉一区| 亚洲国产色一区| 国产二区视频在线| 亚洲免费av网| 天天天天天天天干| 手机精品视频在线观看| 欧美孕妇与黑人孕交| 亚洲天堂视频网站| 久久亚洲风情| 国产精品亚洲片夜色在线| 亚洲视频在线观看免费视频| 久久国产精品露脸对白| 国产免费一区视频观看免费| 国产美女免费看| 成熟亚洲日本毛茸茸凸凹| 国产乱码精品一区二区三区日韩精品| 欧美一区二区三区成人片在线| 成人激情小说网站| 欧美12av| 好吊日视频在线观看| 亚洲精品欧美综合四区| 日韩网站在线免费观看| 625成人欧美午夜电影| 亚洲一区影音先锋| 97xxxxx| 免费一区二区三区四区| 日韩免费在线观看| 亚洲永久精品ww.7491进入| 久久亚洲成人| 九九精品在线播放| 久久人妻免费视频| 精品一区二区免费看| 91免费看蜜桃| 国产区视频在线| 亚洲欧洲另类国产综合| 九九热这里只有精品6| 久久久亚洲精品无码| 日韩天堂在线| 日韩欧美国产1| 色噜噜日韩精品欧美一区二区| 四虎成人av| 97国产在线视频| 亚洲无码精品在线观看| 成人美女在线观看| 亚洲一区不卡在线| av资源中文在线| 欧美日韩日日摸| 精品视频站长推荐| 色中色综合网| 欧美亚洲另类制服自拍| 国产剧情久久久| 91视频观看免费| av电影一区二区三区| 黄毛片在线观看| 777奇米四色成人影色区| 三级电影在线看| 影视亚洲一区二区三区| 国产精品成人一区二区| 亚洲毛片欧洲毛片国产一品色| 亚洲国产成人在线| 黄色一级视频片| 国产在线不卡一区二区三区| 亚洲区在线播放| 久草中文在线视频| 九九视频精品免费| 日韩国产精品一区二区| 天使と恶魔の榨精在线播放| 在线观看亚洲精品视频| 手机在线成人av| 女主播福利一区| 国产精国产精品| 户外极限露出调教在线视频| 一区二区三区不卡在线观看| 爱豆国产剧免费观看大全剧苏畅| 国产aⅴ精品一区二区三区久久| 久久99热这里只有精品国产| 一级黄色片在线| 国产欧美精品区一区二区三区| 久久久久久久久久伊人| 色综合视频一区二区三区日韩| 亚洲日本中文字幕免费在线不卡| 97人人澡人人爽人人模亚洲| 成人做爰视频www网站小优视频| 91首页免费视频| 久久精品国产sm调教网站演员| 日韩欧美中文字幕在线视频| 久久好看免费视频| 这里只有精品9| 欧美激情综合五月色丁香| 欧美 日韩精品| 亚洲免费福利一区| 欧美一区二区三区免费观看| 香蕉视频网站在线| 欧美日韩国产限制| 自拍视频一区二区| 国产欧美日韩一区二区三区在线| 国产欧美日韩一区二区三区| 国产第一页在线| 亚洲精品国精品久久99热| 国产欧美日韩另类| 91免费视频大全| 国产黄色特级片| 精品一区二区三区在线| 国产精品视频一区二区三区四| www.亚洲视频| 7777精品伊人久久久大香线蕉最新版| 国产视频123区| 国产自产高清不卡| 欧美a级免费视频| 精品午夜电影| 欧洲美女7788成人免费视频| 大胆av不用播放器在线播放| 欧美日本在线视频| 五月婷婷一区二区| 99久久综合狠狠综合久久| 97国产精东麻豆人妻电影| 日韩mv欧美mv国产网站| 日本高清不卡的在线| 国产高清在线| 宅男噜噜噜66一区二区66| 欧美xxxx黑人xyx性爽| 成人av第一页| 国产精品久久久久9999小说| 欧美电影《睫毛膏》| yellow视频在线观看一区二区| 国产精选在线| 国产午夜精品美女视频明星a级| 在线免费观看中文字幕| 亚洲男人电影天堂| 制服丝袜第一页在线观看| 天堂va蜜桃一区二区三区| 伊人情人网综合| 国产+成+人+亚洲欧洲在线| 国产极品jizzhd欧美| av小次郎在线| 亚洲欧美日韩在线高清直播| 男人靠女人免费视频网站| 96亚洲精品久久久蜜桃| 亚洲综合视频在线观看| 亚洲a v网站| 国产精品一区二区免费不卡| 免费在线激情视频| 亚洲精品极品少妇16p| 麻豆传媒一区| 日本一区精品视频| 国产精品999999| 超免费在线视频| xvideos亚洲| 亚洲欧美综合在线观看| 6080午夜不卡| 无码人妻丰满熟妇精品区| 亚洲主播在线观看| 黄色片网站在线播放| 26uuu另类欧美亚洲曰本| 久久久久久综合网| 日韩精品一级二级| r级无码视频在线观看| 亚洲h色精品| 日韩三级在线播放| 天天躁日日躁狠狠躁欧美| 51成人做爰www免费看网站| 成人va天堂| 91禁国产网站| 国产乱码在线| 九九热视频这里只有精品| 1769视频在线播放免费观看| 亚洲欧美另类自拍| 天堂成人在线| 精品国产乱码久久久久久久| 国产男女裸体做爰爽爽| 欧美在线一二三四区| 亚洲精品男人的天堂| 亚洲成人免费电影| 欧美日韩免费做爰视频| 中文字幕色av一区二区三区| 中文字幕伦理片| 久久精品网站免费观看| 韩国三级hd两男一女| 国产成人精品网址| 佐山爱在线视频| 国产一区二区三区四区五区入口| 国产一级片自拍| 老汉av免费一区二区三区| 日日噜噜噜噜久久久精品毛片| 国产一区二区三区成人欧美日韩在线观看 | 苍井空浴缸大战猛男120分钟| 国产一区二区三区成人欧美日韩在线观看 | 国产日韩中文在线| 久久久免费人体| 亚洲视频一二三区| 亚洲成人av免费看| 日本免费新一区视频| 九九视频精品在线观看| 热久久久久久久| 日韩高清第一页| 激情五月激情综合网| 午夜国产福利在线观看| 激情小说亚洲一区| 亚洲熟女一区二区三区| 成人毛片在线观看| 成人精品在线观看视频| 久久精品夜色噜噜亚洲a∨| 久久久久久久毛片| 国产精品久久久久久福利一牛影视 | 狠狠热免费视频| 麻豆成人av在线| 在线播放国产视频| www.在线欧美| 精品少妇人妻一区二区黑料社区| 国产午夜亚洲精品午夜鲁丝片| 1024手机在线观看你懂的| 亚洲特黄一级片| 日韩男人的天堂| 欧美天堂亚洲电影院在线播放| 国产乱码精品一区二区三区精东| 日韩欧美一级精品久久| 在线观看xxx| 中文字幕亚洲欧美一区二区三区| 麻豆传媒视频在线| 午夜精品视频在线| 亚洲精品粉嫩美女一区| 亚洲一区二区三区在线免费观看| av综合网址| 日韩精品成人一区二区在线观看| 久久亚洲国产| 日本一道本久久| 免费高清视频精品| 亚洲av人人澡人人爽人人夜夜| 国产亚洲精品超碰| 麻豆91精品91久久久| 日韩欧美aⅴ综合网站发布| 91黄色在线视频| 亚洲精品ady| 欧美18一19xxx性| 午夜精品免费视频| 9999在线精品视频| 精品久久久久久一区| 国产精品久久观看| 中文字幕日本最新乱码视频| 国产自产视频一区二区三区| 欧美激情国内偷拍| 国产免费一区二区视频| 特级片在线观看| 亚洲美女炮图| 成a人片国产精品| 久久久久久久久久亚洲| 精品久久久av| 日本男人操女人| 久草在线网址| 丝袜诱惑亚洲看片| 精品中文字幕在线2019| 婷婷激情小说网| 高清毛片在线看| 国产综合欧美| 蜜桃成人免费视频| 国产精品不卡| 国产一级片黄色| av爱爱亚洲一区| 国产一级理论片| 91精品国产一区二区三区| 国产福利小视频在线| 81精品国产乱码久久久久久| 亚洲图色一区二区三区| 一区二区不卡视频| 日韩中文字幕av电影| 人妻大战黑人白浆狂泄| 亚洲成a人片在线观看中文| 999久久久久久| 日韩在线观看网站| 97成人超碰| 午夜一区二区三区| 精品中文字幕在线播放| 91色porny| 国产精品19乱码一区二区三区| 91精品国产色综合久久不卡蜜臀| av大片在线看| 国产精品户外野外| 九九久久婷婷| 午夜dv内射一区二区| 久久综合色鬼综合色| 免费观看一区二区三区毛片| 亚洲成人亚洲激情| 韩国成人免费视频| 国产经品一区二区| 影音先锋一区| 视频免费在线观看| 五月婷婷欧美视频| 午夜国产在线观看| 欧美一区视频在线| 一个色免费成人影院| 中国丰满人妻videoshd| 久久免费看少妇高潮| 国产精品视频123| 亚洲一区二区黄| 日韩福利在线观看| 在线无限看免费粉色视频| 韩国成人精品a∨在线观看| 加勒比婷婷色综合久久| 日韩三级免费观看| 福利成人导航| 精品国产乱码久久久久久蜜柚 | 日本丰满大乳奶| 国产成a人亚洲| a v视频在线观看| 亚洲人精品午夜在线观看| 91精品国产66| 久久国产精品免费观看| 国产成人激情av| 免费av网站在线| 日韩在线欧美在线国产在线| 国产精品视频一区视频二区| wwwwww欧美| 久久久亚洲综合| 91在线公开视频| 97精品久久久中文字幕免费| 国产欧美日韩在线观看视频| 精品综合久久久久| 偷拍亚洲欧洲综合| 91成人高清| 国产嫩草一区二区三区在线观看| 免费亚洲婷婷| 午夜剧场免费在线观看| 亚洲国产精品女人久久久| 视频精品导航| 99在线免费视频观看| 国产亚洲欧洲一区高清在线观看| 国产精品视频久久久久久| 性金发美女69hd大尺寸| 欧美三级三级| 天天躁日日躁狠狠躁免费麻豆| 欧美自拍丝袜亚洲| tube8在线hd| 一区二区三区久久网| 成人福利视频在线| 欧美 亚洲 另类 激情 另类| 欧美激情二区三区| 日韩在线看片| 国产一级二级在线观看|