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

20個不常見但是卻非常有用的Numpy函數

開發 后端
Numpy是每個數據科學家都應該掌握的Python包,它提供了許多創建和操作數字數組的方法。它構成了許多與數據科學相關的廣泛使用的Python庫的基礎,比如panda和Matplotlib。

 Numpy是每個數據科學家都應該掌握的Python包,它提供了許多創建和操作數字數組的方法。它構成了許多與數據科學相關的廣泛使用的Python庫的基礎,比如panda和Matplotlib。

[[430348]]

以下這些函數并不常見,甚至你可能都沒聽說過,但是在有些時候它們真的很有用。

np.full_like

我敢打賭,你肯定使用過像ones_like 或 zeros_like 這樣的常見 NumPy 函數。 full_like 和這兩個完全一樣,除了你可以創建一個與另一個矩陣具有相同形狀的矩陣但是這些矩陣是使用自定義值填充的。

 

  1. array = np.array([[1, 4, 6, 8], [9, 4, 4, 4], [2, 7, 2, 3]]) 
  2. array_w_inf = np.full_like(array, fill_value=np.pi, dtype=np.float32) 
  3. >>> array_w_inf 
  4. array([[3.1415927, 3.1415927, 3.1415927, 3.1415927], 
  5. [3.1415927, 3.1415927, 3.1415927, 3.1415927], 
  6. [3.1415927, 3.1415927, 3.1415927, 3.1415927]], dtype=float32) 

 

在這里,我們正在創建一個數組值都是pi 矩陣。

np.logspace

我相信你經常使用linspace。它可以在一個區間內創建自定義的線性間隔數據點數量。它的同類logspace在這方面做得更深入一些。它可以在對數尺度上生成均勻間隔的自定義點數。你可以選擇任何一個數作為基數,只要它是非零的:

  1. log_array = np.logspace(start=1, stop=100, num=15, base=np.e) 
  2. >>> log_array 
  3. array([2.71828183e+00, 3.20167238e+03, 3.77102401e+06, 4.44162312e+09, 
  4. 5.23147450e+12, 6.16178472e+15, 7.25753148e+18, 8.54813429e+21, 
  5. 1.00682443e+25, 1.18586746e+28, 1.39674961e+31, 1.64513282e+34, 
  6. 1.93768588e+37, 2.28226349e+40, 2.68811714e+43]) 

np.meshgrid

這是只有在文檔中才能看到的函數之一。因為大部分人難理解它。可以使用meshgrid從給定的X和Y數組創建每個可能的坐標對。這里有一個簡單的例子:

 

  1. x = [1, 2, 3, 4] 
  2. y = [3, 5, 6, 8] 
  3. xx, yy = np.meshgrid(x, y) 
  4. >>> xx 
  5. array([[1, 2, 3, 4], 
  6. [1, 2, 3, 4], 
  7. [1, 2, 3, 4], 
  8. [1, 2, 3, 4]]) 
  9. >>> yy 
  10. array([[3, 3, 3, 3], 
  11. [5, 5, 5, 5], 
  12. [6, 6, 6, 6], 
  13. [8, 8, 8, 8]]) 

 

得到 16 個唯一坐標對,結果數組中的每個索引到索引元素對對應一個。可視化一下就很好理解了

 

  1. >>> plt.plot(xx, yy, linestyle="none", marker="o", color="red"); 

 

20個不常見但是卻非常有用的Numpy函數

 

meshgrid通常用于使用循環需要很長時間的復雜任務。如繪制三維正弦函數等高線圖就是一個例子:

 

  1. def sinus2d(x, y): 
  2. return np.sin(x) + np.sin(y) 
  3. xx, yy = np.meshgrid(np.linspace(0, 2 * np.pi, 100), np.linspace(0, 2 * np.pi, 100)) 
  4. z = sinus2d(xx, yy) # Create the image on this grid 
  5. import matplotlib.pyplot as plt 
  6. plt.imshow(z, origin="lower", interpolation="none"
  7. plt.show() 

 

 

20個不常見但是卻非常有用的Numpy函數

 

np.triu / np.tril

與ones_like或zeros_like類似,這兩個函數在矩陣的某個對角線上方或下方返回0。例如,我們可以使用triu函數在主對角線上創建一個值為True的布爾掩碼,并在繪制相關熱圖時使用這個掩碼。

 

  1. import seaborn as sns 
  2. diamonds = sns.load_dataset("diamonds"
  3. matrix = diamonds.corr() 
  4. mask = np.triu(np.ones_like(matrix, dtype=bool)) 
  5. sns.heatmap(matrix, square=True, mask=mask, annot=True, fmt=".2f", center=0); 

 

 

20個不常見但是卻非常有用的Numpy函數

 

如你所見,用triu創建的掩碼可以用在相關矩陣上,去掉不必要的上三角形和對角線。這使得熱圖更加緊湊,可讀性更強。

np.ravel / np.flatten

NumPy是關于高維矩陣和ndarrays的。但是有時候你只是想把這些數組壓縮成一維。這就是你使用ravel或flatten的地方:

 

  1. array = np.random.randint(0, 10, size=(4, 5)) 
  2. >>> array 
  3. array([[6, 4, 8, 9, 6], 
  4. [5, 0, 4, 8, 5], 
  5. [1, 3, 1, 0, 3], 
  6. [2, 3, 3, 6, 5]]) 
  7. >>> array.ravel() 
  8. array([6, 4, 8, 9, 6, 5, 0, 4, 8, 5, 1, 3, 1, 0, 3, 2, 3, 3, 6, 5]) 
  9. >>> array.flatten() 
  10. array([6, 4, 8, 9, 6, 5, 0, 4, 8, 5, 1, 3, 1, 0, 3, 2, 3, 3, 6, 5]) 

 

它們看起來一樣嗎?不完全是。flatten總是返回一個1D副本,而ravel則試圖生成原始數組的1D視圖。也就是說如果修改從ravel返回的數組可能會改變原來的數組。

np.vstack / np.hstack

在Kaggle上這兩個函數經常被使用。通常人們從不同的模型對測試集有多個預測,他們希望以某種方式集成這些預測。為了使它們易于處理,必須將它們組合成一個矩陣。

 

  1. array1 = np.arange(1, 11).reshape(-1, 1) 
  2. array2 = np.random.randint(1, 10, size=10).reshape(-1, 1) 
  3. hstacked = np.hstack((array1, array2)) 
  4. >>> hstacked 
  5. array([[ 1, 2], 
  6. [ 2, 6], 
  7. [ 3, 6], 
  8. [ 4, 7], 
  9. [ 5, 4], 
  10. [ 6, 6], 
  11. [ 7, 6], 
  12. [ 8, 8], 
  13. [ 9, 2], 
  14. [10, 8]]) 
  15. array1 = np.arange(20, 31).reshape(1, -1) 
  16. array2 = np.random.randint(20, 31, size=11).reshape(1, -1) 
  17. vstacked = np.vstack((array1, array2)) 
  18. >>> vstacked 
  19. array([[20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], 
  20. [21, 23, 23, 26, 29, 26, 27, 27, 28, 25, 25]]) 

 

在將每個數組與這些數組堆疊之前,要對數組進行重塑,因為默認情況下它們需要2D數組。這就是我們使用重塑函數的原因。這里,reshape(-1,1)表示將數組轉換為具有盡可能多行的單列。

類似地,reshape(1,-1)將數組轉換為具有盡可能多列的單行向量。

np.r_ / np.c_

如果你像我一樣懶惰,不想對所有數組調用重塑,那么有一個更優雅的解決方案。np.r_ / np.c_操作符(不是函數!)允許將數組分別堆疊為行和列。

下面,我們模擬一個有100個可能性的預測數組。為了將它們堆疊在一起,我們調用np.r_用括號表示(如pandas.DataFrame.loc)。

 

  1. preds1 = np.random.rand(100) 
  2. preds2 = np.random.rand(100) 
  3. as_rows = np.r_[preds1, preds2] 
  4. as_cols = np.c_[preds1, preds2] 
  5. >>> as_rows.shape 
  6. (200,) 
  7. >>> as_cols.shape 
  8. (100, 2) 

 

類似地,np.c_將數組堆疊在一起創建一個矩陣。其實它們的功能并不局限于簡單的水平和垂直堆棧。要了解更多的功能,我建議你閱讀文檔。

np.info

NumPy的函數非常的多。你可能沒有時間和耐心學習每個函數和類。如果你面對一個未知的函數呢?你不用去看文檔了因為有更好的選擇。

info函數可以打印NumPy API中任何名稱的docstring。這里是info使用的信息:

 

  1. >>> np.info(np.info) 
  2. info(object=None, maxwidth=76, 
  3. output=<ipykernel.iostream.OutStream object at 0x0000021B875A8820>, 
  4. toplevel='numpy'
  5. Get help information for a function, class, or module. 
  6. Parameters 
  7. ---------- 
  8. object : object or str, optional 
  9. Input object or name to get information about. If `object` is a 
  10. numpy object, its docstring is given. If it is a string, available 
  11. modules are searched for matching objects. If None, information 
  12. about `info` itself is returned. 
  13. maxwidth : int, optional 
  14. Printing width. 

 

還記得我們在vscode的文章中說過lint要求強制編寫docstring嗎,這就是原因了。

np.where

顧名思義,這個函數返回一個條件為True的數組的所有下標:

 

  1. probs = np.random.rand(100) 
  2. idx = np.where(probs > 0.8) 
  3. >>> probs[idx] 
  4. array([0.80444302, 0.80623093, 0.98833642, 0.96856382, 0.89329919, 
  5. 0.88664223, 0.90515148, 0.96363973, 0.81847588, 0.88250337, 
  6. 0.98737432, 0.92104315]) 

 

它在搜索稀疏數組中的非零元素時特別有用,甚至可以在Pandas DataFrames上使用它來基于條件進行更快的索引檢索。

np.all / np.any

當與assert語句一起使用時,這兩個函數將在數據清理期間非常方便。np.all僅當數組中的所有元素都符合特定條件時返回True:

 

  1. array1 = np.random.rand(100) 
  2. array2 = np.random.rand(100) 
  3. >>> np.all(array1 == array2) 
  4. False 

 

因為我們創建了兩個隨機數的數組,所以不可能每個元素都相等。然而,如果這些數字是整數,那么它們中至少有兩個相等的可能性要大得多:

 

  1. a1 = np.random.randint(1, 100, size=100) 
  2. a2 = np.random.randint(1, 100, size=100) 
  3. >>> np.any(a1 == a2) 
  4. True 

 

any返回True是因為數組中至少有一個元素滿足特定條件,

np.allclose

如果想要檢查兩個長度相等的數組是否互為副本,簡單的==操作符不會將其截斷。但是你可能想要比較浮點數數組,但是它們的小數點長度使得比較困難。在這種情況下可以使用allclose,如果一個數組的所有元素彼此之間距離很近,給定一定的容忍度,它將返回True。

 

  1. a1 = np.arange(1, 10, step=0.5) 
  2. a2 = np.arange(0.8, 9.8, step=0.5) 
  3. >>> np.all(a1 == a2) 
  4. False 
  5. >>> a1 
  6. array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5, 6. , 6.5, 7. , 
  7. 7.5, 8. , 8.5, 9. , 9.5]) 
  8. >>> a2 
  9. array([0.8, 1.3, 1.8, 2.3, 2.8, 3.3, 3.8, 4.3, 4.8, 5.3, 5.8, 6.3, 6.8, 
  10. 7.3, 7.8, 8.3, 8.8, 9.3]) 
  11. >>> np.allclose(a1, a2, rtol=0.2) 
  12. False 
  13. >>> np.allclose(a1, a2, rtol=0.3) 
  14. True 

 

只有當差異(<)小于rtol時,函數才返回True,而不是<=!

np.argsort

np.sort返回一個已排序的數組副本。有時需要對數組進行排序的索引,以便為不同的目的多次使用相同的索引。 這就是 argsort 派上用場的地方:

 

  1. random_ints = np.random.randint(1, 100, size=20) 
  2. idx = np.argsort(random_ints) 
  3. >>> random_ints[idx] 
  4. array([ 6, 19, 22, 23, 35, 36, 37, 45, 46, 57, 61, 62, 64, 66, 66, 68, 72, 
  5. 74, 87, 89]) 

 

它來自以 arg 開頭的一系列函數,這些函數總是從某個函數的結果返回一個或多個索引。 例如,argmax 查找數組中的最大值并返回其索引(分類的TOP N就可以用這種方法)。

np.isneginf / np.isposinf

這兩個布爾函數檢查數組中的元素是負無窮大還是正無窮大。 但是計算機和 NumPy 不理解無窮大的概念(好吧,我也不知道是為什么)。 它們只能將無窮大表示為一個非常大或非常小的數字,這樣才可以放入一個變量中(我希望我說得對)。

這就是為什么當你打印 np.inf 的類型時,它返回浮點數:

 

  1. >>> type(np.inf) # type of the infinity 
  2. float 
  3. >>> type(-np.inf) 
  4. float 

 

這意味著無窮大值可以很容易地被當作數組的正常值。 所以你需要一個特殊的功能來找到這些異常的值:

 

  1. a = np.array([-9999, 99999, 97897, -79897, -np.inf]) 
  2. >>> np.all(a.dtype == "float64"
  3. True 
  4. >>> np.any(np.isneginf(a)) 
  5. True 

 

np.polyfit

如果要執行傳統的線性回歸,則不一定需要 Sklearn。 NumPy 也可以的:

 

  1. X = diamonds["carat"].values.flatten() 
  2. y = diamonds["price"].values.flatten() 
  3. slope, intercept = np.polyfit(X, y, deg=1) 
  4. >>> slope, intercept 
  5. (7756.425617968436, -2256.3605800454034) 

 

polyfit 獲取兩個向量,對它們應用線性回歸并返回斜率和截距。 你只需要使用 deg 指定次數,因為此函數可用于逼近任何次數多項式的根。

檢查發現用 polyfit 找到的斜率和截距與 Sklearn 的 LinearRegression 模型相同:

 

  1. from sklearn.linear_model import LinearRegression 
  2. lr = LinearRegression().fit(X.reshape(-1, 1), y) 
  3. >>> lr.coef_, lr.intercept_ 
  4. (array([7756.42561797]), -2256.360580045441) 

 

概率分布

NumPy 的 random 模塊有多種偽隨機數生成器可供選擇。 除了我最喜歡的樣本和選擇之外,還有模擬偽完美概率分布的函數。

例如,二項式、伽馬、正態和 tweedie 函數從它們各自的分布中繪制自定義數量的數據點。

當你必須近似數據中特征的分布時,你可能會發現它們非常有用。 例如,下面我們檢查鉆石價格是否服從正態分布。

 

  1. fig, ax = plt.subplots(figsize=(6, 8)) 
  2. price_mean = diamonds["price"].mean() 
  3. price_std = diamonds["price"].std() 
  4. # Draw from a perfect normal distribution 
  5. perfect_norm = np.random.normal(price_mean, price_std, size=1000000) 
  6. sns.kdeplot(diamonds["price"], ax=ax) 
  7. sns.kdeplot(perfect_norm, ax=ax) 
  8. plt.legend(["Price""Perfect Normal Distribution"]); 

 

 

20個不常見但是卻非常有用的Numpy函數

 

這可以通過在完美正態分布之上繪制鉆石價格的 KDE 來實現,以使差異可見。

np.rint

如果你想將數組的每個元素四舍五入到最接近的整數, rint 是一個漂亮的小函數。 當你想將類概率轉換為二進制分類中的類標簽時,可以不必調用模型的 predict 方法改成直接使用它:

 

  1. preds = np.random.rand(100) 
  2. >>> np.rint(preds[:50]) 
  3. array([1., 1., 0., 1., 0., 1., 1., 0., 0., 0., 0., 1., 0., 1., 0., 1., 0., 
  4. 1., 0., 1., 1., 1., 1., 1., 0., 0., 1., 0., 0., 0., 0., 1., 0., 0., 
  5. 0., 0., 0., 0., 0., 0., 1., 0., 1., 0., 1., 1., 0., 0., 1., 0.]) 

 

np.nanmean / np.nan*

是否知道如果至少有一個元素是 NaN,則純 NumPy 數組上的算術運算會失敗?

 

  1. a = np.array([12, 45, np.nan, 9, np.nan, 22]) 
  2. >>> np.mean(a) 
  3. nan 

 

要在不修改原始數組的情況下解決此問題,你可以使用一系列 nan 函數:

 

  1. >>> np.nanmean(a) 
  2. 22.0 

 

以上是忽略缺失值的算術平均函數的示例。 許多其他函數以同樣的方式工作:

 

  1. >>> [func for func in dir(np) if func.startswith("nan")] 
  2. ['nan'
  3. 'nan_to_num'
  4. 'nanargmax'
  5. 'nanargmin'
  6. 'nancumprod'
  7. 'nancumsum'
  8. 'nanmax'
  9. 'nanmean'
  10. 'nanmedian'
  11. 'nanmin'
  12. 'nanpercentile'
  13. 'nanprod'
  14. 'nanquantile'
  15. 'nanstd'
  16. 'nansum'
  17. 'nanvar'

但是,如果只使用 Pandas DataFrames 或 Series,可能會有些不同,因為它們默認會忽略 NaN。

np.clip

當想對數組的值施加嚴格限制時,clip 很有用。 下面,我們將裁剪任何超出 10 和 70 硬限制的值:

 

  1. ages = np.random.randint(1, 110, size=100) 
  2. limited_ages = np.clip(ages, 10, 70) 
  3. >>> limited_ages 
  4. array([13, 70, 10, 70, 70, 10, 63, 70, 70, 69, 45, 70, 70, 56, 60, 70, 70, 
  5. 10, 52, 70, 32, 62, 21, 70, 13, 13, 10, 50, 38, 32, 70, 20, 27, 64, 
  6. 34, 10, 70, 70, 53, 70, 53, 54, 26, 70, 57, 70, 46, 70, 17, 48, 70, 
  7. 15, 49, 70, 10, 70, 19, 23, 70, 70, 70, 45, 47, 70, 70, 34, 25, 70, 
  8. 10, 70, 42, 62, 70, 10, 70, 23, 25, 49, 70, 70, 62, 70, 70, 11, 10, 
  9. 70, 30, 44, 70, 49, 10, 35, 52, 21, 70, 70, 25, 10, 55, 59]) 

 

np.count_nonzero

使用稀疏數組是很常見的。 通常,它們是對具有高基數(High-Cardinality)或只有許多二進制列的分類特征進行獨熱編碼的結果。

你可以使用count_nonzero來檢查任意數組中非零元素的數量:

 

  1. a = np.random.randint(-50, 50, size=100000) 
  2. >>> np.count_nonzero(a) 
  3. 98993 

 

100k隨機整數中,~1000個為零。

np.array_split

它可以用來將ndarray或dataframe分成N個bucket。此外,當你想要將數組分割成大小不相等的塊(如vsplit)時,它不會引發錯誤:

 

  1. import datatable as dt 
  2. df = dt.fread("data/train.csv").to_pandas() 
  3. splitted_dfs = np.array_split(df, 100) 
  4. >>> len(splitted_dfs) 
  5. 100 

 

 

責任編輯:華軒 來源: 今日頭條
相關推薦

2010-07-30 09:07:12

PHP函數

2021-08-17 10:34:19

Python數據科學機器學習

2009-03-24 14:23:59

PHP類庫PHP開發PHP

2017-08-02 13:32:18

編程Java程序片段

2011-07-05 11:24:52

SQL語句索引

2018-08-03 10:02:05

Linux命令

2013-06-14 14:57:09

Java基礎代碼

2011-07-07 17:16:43

PHP

2013-08-12 15:00:24

LinuxLinux命令

2013-08-13 10:46:51

LinuxLinux命令

2023-06-13 15:15:02

JavaScript前端編程語言

2021-07-06 11:25:20

Chrome前端代碼

2009-05-18 16:58:56

Java代碼片段

2020-10-29 10:00:55

Python函數文件

2023-02-19 15:22:22

React技巧

2014-02-09 09:50:49

PHP函數

2016-12-14 20:53:04

Linuxgcc命令行

2016-12-14 19:19:19

Linuxgcc命令行

2022-09-02 23:08:04

JavaScript技巧開發

2013-11-05 10:03:22

Eclipse功能
點贊
收藏

51CTO技術棧公眾號

手机在线一区二区三区| 成人黄视频在线观看| 亚洲免费中文| 国产亚洲欧美另类中文| 在线观看日本一区二区| 老司机免费在线视频| 成人永久免费视频| 国产99视频在线观看| 国产美女福利视频| 美女视频亚洲色图| 欧美日免费三级在线| 成人在线国产视频| av电影在线播放高清免费观看| 国产精品18久久久久久久久久久久| 4438全国亚洲精品在线观看视频| 蜜桃av免费观看| 日本一道高清一区二区三区| 欧美顶级少妇做爰| 无码人妻h动漫| a黄色片在线观看| 99久久久久免费精品国产| 国产精品盗摄久久久| 久久97人妻无码一区二区三区| 欧美日韩一二三四| 亚洲福利在线看| 日本人69视频| 国产超碰精品| 亚洲国产一区视频| 自拍另类欧美| 国产午夜在线视频| 99久久久久久| 国产98在线|日韩| 国产精品高潮呻吟av| 久久午夜影视| 97婷婷大伊香蕉精品视频| 337人体粉嫩噜噜噜| 综合干狼人综合首页| 亚洲福利视频久久| 性感美女一区二区三区| 粉嫩av国产一区二区三区| 欧洲av一区二区嗯嗯嗯啊| 一本大道熟女人妻中文字幕在线| 俺来俺也去www色在线观看| 亚洲丝袜精品丝袜在线| 欧美日韩国产精品一区二区| 手机看片国产1024| 成人综合婷婷国产精品久久免费| 亚洲永久在线观看| 国产精品久久免费| 久久精品72免费观看| 国产精品精品久久久久久| 精品久久久久久久久久久久久久久久久久| 亚洲看片一区| 91av视频在线播放| 亚洲精品1区2区3区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 91久久久久久久久久久久| 日韩综合一区二区| 国产玖玖精品视频| 国产精品自偷自拍| 国产伦精品一区二区三区免费迷 | 中文字幕乱码亚洲精品一区| 日韩福利影院| 草碰在线视频| 综合色中文字幕| 日韩最新中文字幕| 波多野结衣在线观看| 午夜精品福利视频网站| 18禁免费无码无遮挡不卡网站 | 国产精品视频网| 一级做a爰片久久毛片16| 久久99久久久久久久久久久| 91探花福利精品国产自产在线| 精品国产区一区二| 99视频一区二区| 日本不卡二区高清三区| 欧美激情视频在线播放| 亚洲精品少妇30p| 国产精彩视频一区二区| 欧美成人影院| 欧美日韩三级一区| 四川一级毛毛片| 免费日韩一区二区三区| 国产一区二区动漫| 爱爱视频免费在线观看| 一本不卡影院| 国产美女精彩久久| 精品二区在线观看| 91色九色蝌蚪| 伊人久久婷婷色综合98网| 在线免费观看污| 欧美午夜女人视频在线| 手机av在线网| 免费看久久久| 久久视频在线播放| 日韩精品久久久久久久酒店| 日本va欧美va欧美va精品| 成人欧美在线观看| 日本韩国精品一区二区| 亚洲天堂av老司机| 91黄色小网站| 国产区一区二| 国产亚洲综合久久| 日本少妇bbwbbw精品| 蜜臀久久久久久久| 精品国产一区二区三区麻豆小说| 香蕉视频在线播放| 欧美日韩国产精品一区二区不卡中文| 天天爽天天爽夜夜爽| aaa国产精品视频| 丝袜美腿亚洲一区二区| wwwwww国产| 国产成人亚洲精品青草天美 | 欧美三级小说| 国产精品美女久久久免费| 黑人操亚洲女人| 最新日韩av在线| 女人另类性混交zo| 波多野结衣欧美| 久久天天躁狠狠躁老女人| 免费又黄又爽又猛大片午夜| 成人高清视频免费观看| 91社在线播放| 国产亚洲欧美日韩精品一区二区三区 | 久久av一区二区三| 久久久久久影院| 国产精品福利网| 男同在线观看| 精品久久久久久中文字幕一区奶水 | 中国日韩欧美久久久久久久久| 国产香蕉视频在线| 国产精品12区| 久久免费视频2| 国产精品天堂蜜av在线播放 | 国产一区精品在线| 天堂av最新在线| 制服丝袜亚洲播放| 很污很黄的网站| 免费av网站大全久久| 日韩中文字幕av在线| 亚洲高清黄色| 亚洲区中文字幕| 老熟妇仑乱一区二区av| 91社区在线播放| 欧美日韩第二页| 九一亚洲精品| 国产成人免费av| 九色在线播放| 欧洲国产伦久久久久久久| 日本一道本视频| 蜜桃传媒麻豆第一区在线观看| 日本在线高清视频一区| 成人做爰视频www| 中文字幕亚洲二区| 一区二区三区午夜| 亚洲欧美日韩一区二区三区在线观看 | 台湾成人av| 欧美91在线|欧美| 久久视频国产精品免费视频在线| 99这里有精品视频| 亚洲一区二区三区精品在线| 挪威xxxx性hd极品| 国产精品普通话对白| 欧美一卡2卡3卡4卡无卡免费观看水多多| 欧美二三四区| 色妞久久福利网| 国产高清第一页| 婷婷开心久久网| 九九热免费在线| 韩国视频一区二区| 成人黄色大片网站| 你微笑时很美电视剧整集高清不卡| 国产成人精品网站| 欧美激情午夜| 亚洲成人av资源网| 中文字幕精品无| 亚洲欧美乱综合| 天天插天天射天天干| 日韩精品一级二级| 超薄肉色丝袜足j调教99| 老司机aⅴ在线精品导航| 国产91在线播放精品91| 国产理论在线观看| 亚洲国产精品电影| 在线观看毛片视频| 亚洲线精品一区二区三区八戒| 中文字幕一区二区三区人妻| 精品在线视频一区| 欧美日韩在线一| 午夜免费一区| 久久综合狠狠综合久久综青草| 成人四虎影院| 久久久久久久国产精品视频| 高h视频在线| 精品三级av在线| 中文字幕91爱爱| 午夜日韩在线观看| 中文字幕无码日韩专区免费| 99re视频精品| 五月六月丁香婷婷| 美女黄色成人网| 乱熟女高潮一区二区在线| 国产日韩欧美一区二区三区| 操人视频欧美| 日韩电影精品| 琪琪亚洲精品午夜在线| 性xxxxfjsxxxxx欧美| 最近2019免费中文字幕视频三 | 日韩中文字幕一区二区高清99| 青草热久免费精品视频 | 爽成人777777婷婷| 欧美日韩高清免费| 卡一精品卡二卡三网站乱码| 亚洲曰本av电影| 日本在线一区二区| 国产精品r级在线| 97超碰在线免费| 久久99国产精品自在自在app| 国产h在线观看| 亚洲精品一区在线观看香蕉| 色婷婷av一区二区三| 制服丝袜激情欧洲亚洲| 成人黄色片在线观看| 欧美小视频在线观看| 久久免费视频播放| 尤物av一区二区| 久久av红桃一区二区禁漫| 国产欧美一区二区三区沐欲 | 中文字幕综合网| 成人免费视频入口| 中文字幕精品一区二区三区精品| 欧美色图亚洲激情| 91麻豆国产香蕉久久精品| 国产黑丝在线观看| 成人午夜在线视频| 久久久久久久穴| 成人深夜在线观看| 在线播放第一页| 成人性生交大片免费看视频在线| 中文字幕乱妇无码av在线| 国产在线精品一区二区不卡了 | 久久久国产一区二区三区四区小说| 中文字幕在线永久| 97精品电影院| 成人午夜剧场视频网站| 久久蜜桃av一区二区天堂| 超碰97人人干| 欧美激情在线免费观看| 日韩精品电影一区二区三区| 国产精品剧情在线亚洲| 永久免费未视频| 亚洲黄色免费网站| 久热精品在线观看| 欧美日韩国产一区在线| 亚洲va在线观看| 在线观看亚洲精品视频| 亚洲视频中文字幕在线观看| 欧美精品在线观看播放| 国产v片在线观看| 精品国产乱码久久久久久浪潮| 欧美 日韩 国产 成人 在线| 国产视频精品va久久久久久| 国产色a在线| 日韩三级成人av网| 色婷婷av在线| 欧美亚洲视频在线看网址| 亚洲综合在线电影| 国产欧美韩国高清| 伊色综合久久之综合久久| 国产精品乱码| 久久91麻豆精品一区| 亚洲欧洲日韩综合二区| 一区二区免费不卡在线| 男女视频网站在线观看| 麻豆9191精品国产| 一二三av在线| proumb性欧美在线观看| 久久久久无码精品国产sm果冻| 中文字幕中文字幕一区二区| 久久网中文字幕| 91国偷自产一区二区三区观看| 这里只有精品999| 欧美成人vps| 懂色av中文在线| 欧美裸体男粗大视频在线观看| 涩涩视频在线播放| 国产精品偷伦一区二区| 国产成人精品亚洲线观看| 日韩尤物视频| 亚洲国产1区| 天天色综合社区| 成人性生交大片免费看中文网站| 日韩毛片无码永久免费看| 一区二区三区免费网站| 久久久久亚洲视频| 亚洲第一中文字幕| 日本视频在线| 欧美在线视频观看| 亚洲亚洲一区二区三区| 色播亚洲婷婷| 国产情侣久久| 五月天六月丁香| 国产欧美日韩精品在线| www日韩精品| 欧美一级黄色录像| av中文字幕一区二区三区| 性欧美暴力猛交69hd| 成人综合日日夜夜| 亚洲成人网上| 亚洲综合欧美| 精品一区二区三区四区五区六区| 国产精品久久久久久久久免费丝袜| 日韩视频免费观看高清| 日韩一卡二卡三卡国产欧美| 91精品大全| 日本高清不卡在线| 激情小说亚洲色图| 999久久欧美人妻一区二区| 麻豆精品新av中文字幕| 高潮毛片无遮挡| 精品久久久久久国产| 神马午夜在线观看| 欧美激情va永久在线播放| 日韩毛片免费看| 亚洲精品日韩成人| 日本在线不卡一区| 国产精久久一区二区三区| 午夜精品123| 亚洲欧美综合在线观看| 97精品国产97久久久久久免费 | 欧洲一级精品| 欧美成人蜜桃| 先锋a资源在线看亚洲| 偷偷色噜狠狠狠狠的777米奇| 一区二区三区欧美日| 99这里有精品视频| 九色精品免费永久在线| 精品久久久久久久久久岛国gif| 中文字幕乱码一区二区三区| 麻豆一区二区在线| 99热6这里只有精品| 欧美日本韩国一区| gogo在线观看| 99国内精品久久久久久久软件| 欧美a级片网站| 色婷婷狠狠18禁久久| 亚洲一区二区三区三| 色呦呦免费观看| 欧亚精品中文字幕| 蜜桃国内精品久久久久软件9| 久久精品午夜福利| 国产欧美一区在线| 亚洲一级视频在线观看| 日韩视频免费大全中文字幕| 国产精品va视频| 亚洲精品久久久久久久蜜桃臀| av一区二区不卡| 亚洲无码精品一区二区三区| 中文字幕av日韩| 国产精品亚洲综合在线观看 | 日韩精品久久久| 美腿丝袜亚洲综合| 久久国产精品国语对白| 日韩美女视频一区二区在线观看| freexxx性亚洲精品| 欧美精品欧美精品系列c| 欧美a一区二区| 天天综合天天做| 亚洲精品ady| 影音成人av| 50度灰在线观看| 99国产欧美另类久久久精品| 免费黄色小视频在线观看| xxav国产精品美女主播| 美女福利一区| 黄色手机在线视频| 亚洲一区二区在线视频| 日本一区高清| 91人人爽人人爽人人精88v| 亚洲精品护士| 18啪啪污污免费网站| 精品欧美乱码久久久久久| 欧美二三四区| 欧洲精品在线播放| 久久久久久久久久电影| 99精品国产99久久久久久97| 97超碰色婷婷| 久久久久久久久久久久久久| 日本免费福利视频| 91精品免费观看| 伊人久久国产| 国产性生活免费视频| 久久精品日产第一区二区三区高清版| 国产三级视频在线播放| 日韩av手机在线观看| 国产一区日韩一区| 99自拍偷拍视频| 亚洲精品福利免费在线观看| 不卡精品视频| 毛葺葺老太做受视频|