精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

a级片一区二区| 国产精品久久久久久久久影视| 波多野结衣办公室双飞| 一区二区三区短视频| 国产精品丝袜久久久久久app| 91色中文字幕| 久久99精品波多结衣一区| 日本一区二区在线看| 精品国内片67194| 丁香婷婷激情网| 好久没做在线观看| 国产女主播一区| 古典武侠综合av第一页| 波多野结衣视频免费观看| 你懂的视频一区二区| 亚洲新声在线观看| 国产免费一区二区三区最新6| 成人免费黄色| 黑人精品xxx一区| www.黄色网址.com| 91大神在线网站| 99精品欧美一区二区三区小说| 国产在线精品一区免费香蕉| youjizz在线视频| 国产精品hd| 精品国产欧美一区二区五十路 | 精品极品在线| 亚洲欧美日韩久久精品| 日韩偷拍一区二区| 日韩一区av| 成人黄页毛片网站| 亚洲a成v人在线观看| 免费一级a毛片| 午夜亚洲视频| 91av视频在线播放| 国产第一页第二页| 欧美特黄a级高清免费大片a级| 中文字幕精品久久| 性猛交ⅹxxx富婆video | 亚洲第一福利视频| 可以看的av网址| 国产欧美视频在线| 欧美精品视频www在线观看| 黄色国产小视频| 深夜视频一区二区| 欧美最猛性xxxxx直播| 黄色a级片免费| 黑人精品一区| 日本乱人伦一区| 男女av免费观看| 欧美成人ⅴideosxxxxx| 日韩欧美在线播放| 久久久久久久久久久久久久国产| 蜜桃视频在线观看免费视频| 精品成人久久av| 国产原创中文在线观看| 女海盗2成人h版中文字幕| 亚洲国产美国国产综合一区二区| 97碰在线视频| av中文资源在线资源免费观看| 亚洲福利视频一区二区| 国产精品无码人妻一区二区在线| av影院在线| 天天综合天天综合色| 欧美牲交a欧美牲交| 美女100%一区| 欧美日韩国产一区二区三区地区| 一级做a免费视频| 成人午夜888| 精品国产凹凸成av人导航| 国产污在线观看| 国产剧情在线观看一区| 中文字幕日韩免费视频| 日韩影院一区二区| 亚洲第一毛片| 国产精品高潮呻吟久久av黑人| 最新国产中文字幕| 国产一区二区成人久久免费影院| 99一区二区| 深夜福利视频一区| 中文一区二区完整视频在线观看| 国产又爽又黄ai换脸| 日本天码aⅴ片在线电影网站| 午夜精品福利视频网站| 欧美成人精品欧美一级乱| 欧美亚洲综合视频| 精品国产99国产精品| 欧美图片第一页| 在线看片不卡| 日韩av毛片网| 国产三级三级在线观看| 91亚洲精品久久久蜜桃| 色一情一乱一伦一区二区三区丨 | 综合伊思人在钱三区| 综合激情国产一区| 日本系列第一页| 奇米影视一区二区三区| 国产精品国模大尺度私拍| 丁香婷婷在线观看| 亚洲福利电影网| 三级av免费观看| 卡一精品卡二卡三网站乱码| 中文日韩在线视频| 国产无人区码熟妇毛片多| 久久成人久久鬼色| 久久99久久99精品蜜柚传媒| 巨大荫蒂视频欧美另类大| 日韩欧美在线视频观看| 日本wwww色| 久久一本综合| 日本精品va在线观看| www.xxxx国产| 中文字幕在线观看不卡视频| 国产精品沙发午睡系列| 亚洲精品黑牛一区二区三区| 综合国产在线观看| 国产伦精品一区二区三区视频网站| 国产老女人精品毛片久久| 日韩在线导航| 高清av不卡| 亚洲精品国产综合久久| 青春草免费视频| 卡一卡二国产精品| 视频一区免费观看| 91精品论坛| 亚洲第一页自拍| 青青草手机在线视频| 久久精品国产精品亚洲精品 | 青娱乐精品在线| 欧美午夜精品一区二区三区电影| 777精品视频| 蜜桃91麻豆精品一二三区| 18成人在线观看| 中文字幕在线观看日| 精品视频亚洲| 日本a级片电影一区二区| 天堂av资源网| 黄色一区二区在线| 欧美熟妇精品黑人巨大一二三区| 欧美女激情福利| 91在线免费看片| 一区二区三区伦理| 日韩欧美国产三级| 免费在线观看国产精品| 国产成人精品亚洲日本在线桃色| 三年中国中文在线观看免费播放| 欧洲精品久久久久毛片完整版| 中文字幕av一区二区| 一级黄色片在线播放| 国产精品麻豆99久久久久久| 欧美第一页浮力影院| 欧美r级电影| 91视频免费在线| 在线免费观看污| 欧美mv和日韩mv的网站| 精品小视频在线观看| 波多野结衣中文字幕一区二区三区 | 国模吧一区二区三区| 欧美性猛交 xxxx| 岛国av一区二区在线在线观看| 91av在线免费| 日韩国产精品久久| 亚洲砖区区免费| 影音先锋欧美激情| 98视频在线噜噜噜国产| 麻豆av电影在线观看| 欧美视频一区二| 天海翼在线视频| 亚洲精品福利| 在线精品亚洲一区二区不卡| 国产人妻一区二区| 麻豆久久一区二区| 经典三级在线视频| 国内精品国产成人国产三级粉色 | 久久久久亚洲av无码专区体验| 国产伦精品一区二区三区免费迷 | 青青草成人网| 日韩av黄色| 色综合久久88色综合天天看泰| 深爱五月激情五月| 欧美视频日韩视频| 欧美成人精品欧美一级私黄| 99久久99久久精品国产片果冻| 成人黄色一区二区| 黑丝一区二区| 日本一区二区在线| 综合激情久久| 国产精品扒开腿爽爽爽视频 | 一区二区高清在线| 爱爱的免费视频| 韩国av一区二区| 国产精品免费观看久久| 亚洲香蕉av| 欧美综合77777色婷婷| 欧美经典一区| 国产精品久久91| 男女视频在线| 视频直播国产精品| 色欲av永久无码精品无码蜜桃| 欧洲国内综合视频| 日韩三级小视频| 亚洲欧洲精品一区二区三区| 日本69式三人交| 精品一区二区三区视频| 国产黄色一级网站| 午夜欧美精品久久久久久久| 日韩片电影在线免费观看| 视频国产精品| 国产主播精品在线| 亚洲人免费短视频| 91国产高清在线| 中文国产字幕在线观看| 中文字幕亚洲欧美| 九色网友自拍视频手机在线| 亚洲白拍色综合图区| 91亚洲国产成人久久精品麻豆| 欧美性xxxx在线播放| 久久久夜色精品| 亚洲视频你懂的| 夫妇露脸对白88av| 久久精品人人做人人爽97 | 国产色产综合产在线视频| 午夜剧场免费看| 成人免费视频app| 色黄视频免费看| 久久99热99| 91福利国产成人精品播放| 麻豆九一精品爱看视频在线观看免费| 精品人妻大屁股白浆无码| 久久影视一区| 亚洲国产成人不卡| 精品日本12videosex| 久久久精彩视频| 日韩av三区| 国偷自产av一区二区三区小尤奈| h视频久久久| 999日本视频| 一区二区三区四区高清视频| 91视频国产精品| 日韩一区网站| 91香蕉亚洲精品| 欧美高清一级片| 97人人模人人爽人人喊38tv| 69精品国产久热在线观看| 97久草视频| 粉嫩精品导航导航| 黑人巨大精品欧美一区二区小视频| 999久久久久久久久6666| 91精品国产一区二区三区动漫 | 男人j进女人j| 中文在线日韩| av动漫在线免费观看| 欧美天堂亚洲电影院在线观看 | 日本一区高清在线视频| 国产一区国产二区国产三区| 亚洲高清在线观看一区| 亚洲九九视频| 国产手机免费视频| 国产精品一区毛片| 最近中文字幕一区二区| 久久国产成人午夜av影院| 久久出品必属精品| 成人午夜私人影院| 99久久人妻精品免费二区| 久久蜜臀中文字幕| 天堂av网手机版| 一区二区在线观看视频在线观看| 欧美日韩一级在线观看| 精品女同一区二区三区在线播放| 亚洲大片免费观看| 欧美猛男男办公室激情| 丰满人妻av一区二区三区| 亚洲欧美另类在线观看| 午夜看片在线免费| 欧美精品videosex极品1| a一区二区三区| 成人网在线免费观看| 国产精品qvod| 日本视频一区在线观看| 亚洲欧美综合国产精品一区| 久久视频这里有精品| 久久超碰97人人做人人爱| 日本天堂在线播放| 中文字幕精品—区二区四季| 欧美爱爱小视频| 在线视频欧美区| 成人1区2区3区| 在线播放精品一区二区三区| 美女精品导航| 国产精品美女主播在线观看纯欲| 亚洲日本视频在线| 日产精品一线二线三线芒果| 欧美成人一品| 中文久久久久久| 成人av中文字幕| 精品亚洲乱码一区二区| 欧美日韩国产在线看| 国产人妻精品一区二区三区| 亚洲美女激情视频| 日韩专区av| 国产精品美女av| 欧美大胆视频| 男人j进女人j| 美女一区二区三区| 日本黄色动态图| 亚洲人成小说网站色在线| 亚洲成人第一网站| 欧美精品一区二区三区高清aⅴ| 欧美成人精品一区二区男人看| 欧美在线亚洲在线| 成人爽a毛片免费啪啪红桃视频| 亚洲欧美日韩不卡一区二区三区| 国产欧美日韩一级| 日韩高清一二三区| 最近中文字幕一区二区三区| 色老头一区二区| 亚洲精品美女在线| 男女视频在线| 97操在线视频| 欧美粗暴jizz性欧美20| 污污网站免费观看| 国产亚洲午夜高清国产拍精品| 欧美成人aaaaⅴ片在线看| 日韩一区二区三区av| 日本蜜桃在线观看| 国产精品视频一区二区三区四| 免费欧美激情| 国产精品动漫网站| 91蜜桃免费观看视频| 日韩人妻无码一区二区三区99 | 色综合久久天天| 五月婷婷免费视频| 午夜精品蜜臀一区二区三区免费| 亚洲开心激情| 日韩一区二区高清视频| 国产福利一区二区三区| 精品欧美一区二区久久久久| 日韩亚洲欧美一区二区三区| av片在线观看永久免费| 91在线观看免费高清完整版在线观看| 日韩欧美字幕| 午夜xxxxx| 亚洲免费观看高清完整版在线| 国产乱码精品一区二区| 久久综合免费视频| 欧美专区视频| 精品一二三四五区| 成人sese在线| 国语对白永久免费| 亚洲男人的天堂网站| 校园春色亚洲色图| 色播五月综合| 狠狠色狠狠色综合日日91app| 一区二区国产精品精华液| 日韩一区二区麻豆国产| 韩国日本一区| 免费精品视频一区| 美女一区二区视频| 日本黄色片免费观看| 欧美变态tickling挠脚心| 精精国产xxxx视频在线中文版 | 91精品国产91久久久久久密臀| 国产乱码一区二区三区四区| 樱花影视一区二区| 五月婷婷丁香网| 国产精品久久一| 中文字幕免费一区二区| 婷婷五月精品中文字幕| 色婷婷综合久色| 欧美激情午夜| 国产精品一国产精品最新章节| 亚洲中字在线| 成人免费视频入口| 日韩精品一区二区三区蜜臀| 亚洲小少妇裸体bbw| 亚洲电影网站| 暴力调教一区二区三区| 成人小视频在线播放| 欧美日本高清一区| 亚洲老女人视频免费| 天堂av在线8| 精品成人av一区| 麻豆tv免费在线观看| 久久66热这里只有精品| 激情国产一区二区| 久久高清免费视频| 色诱女教师一区二区三区| av不卡一区二区| 在线免费观看视频黄| 亚洲一区二区精品视频| 国产高清视频在线播放| 亚洲一区二区免费| 丝袜美腿亚洲一区| 青青草手机在线观看| 尤物tv国产一区| 加勒比色综合久久久久久久久| 蜜臀av免费观看| 欧美日韩精品二区| а√天堂在线官网| 日韩精品一区二区三区丰满|