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

用 NumPy 在 Python 中處理數字

開發 后端
這篇文章我將介紹安裝 NumPy,然后創建、讀取和排序 NumPy 數組。NumPy 數組也被稱為 ndarray,即 N 維數組的縮寫。

這篇文章討論了安裝 NumPy,然后創建、讀取和排序 NumPy 數組。

NumPy(即 Numerical Python)是一個庫,它使得在 Python 中對線性數列和矩陣進行統計和集合操作變得容易。我在 Python 數據類型的筆記中介紹過,它比 Python 的列表快幾個數量級。NumPy 在數據分析和科學計算中使用得相當頻繁。

我將介紹安裝 NumPy,然后創建、讀取和排序 NumPy 數組。NumPy 數組也被稱為 ndarray,即 N 維數組的縮寫。

安裝 NumPy

使用 pip 安裝 NumPy 包非常簡單,可以像安裝其他軟件包一樣進行安裝:

  1. pip install numpy

安裝了 NumPy 包后,只需將其導入你的 Python 文件中:

  1. import numpy as np

將 numpy 以 np 之名導入是一個標準的慣例,但你可以不使用 np,而是使用你想要的任何其他別名。

為什么使用 NumPy? 因為它比 Python 列表要快好幾個數量級

當涉及到處理大量的數值時,NumPy 比普通的 Python 列表快幾個數量級。為了看看它到底有多快,我首先測量在普通 Python 列表上進行 min() 和 max() 操作的時間。

我將首先創建一個具有 999,999,999 項的 Python 列表:

  1. >>> my_list = range(1, 1000000000)
  2. >>> len(my_list)
  3. 999999999

現在我將測量在這個列表中找到最小值的時間:

  1. >>> start = time.time()
  2. >>> min(my_list)
  3. 1
  4. >>> print('Time elapsed in milliseconds: ' + str((time.time() - start) * 1000))
  5. Time elapsed in milliseconds: 27007.00879096985

這花了大約 27,007 毫秒,也就是大約 27 秒。這是個很長的時間?,F在我試著找出尋找最大值的時間:

  1. >>> start = time.time()
  2. >>> max(my_list)
  3. 999999999
  4. >>> print('Time elapsed in milliseconds: ' + str((time.time() - start) * 1000))
  5. Time elapsed in milliseconds: 28111.071348190308

這花了大約 28,111 毫秒,也就是大約 28 秒

現在我試試用 NumPy 找到最小值和最大值的時間:

  1. >>> my_list = np.arange(1, 1000000000)
  2. >>> len(my_list)
  3. 999999999
  4. >>> start = time.time()
  5. >>> my_list.min()
  6. 1
  7. >>> print('Time elapsed in milliseconds: ' + str((time.time() - start) * 1000))
  8. Time elapsed in milliseconds: 1151.1778831481934
  9. >>>
  10. >>> start = time.time()
  11. >>> my_list.max()
  12. 999999999
  13. >>> print('Time elapsed in milliseconds: ' + str((time.time() - start) * 1000))
  14. Time elapsed in milliseconds: 1114.8970127105713

找到最小值花了大約 1151 毫秒,找到最大值 1114 毫秒。這大約是 1 秒。

正如你所看到的,使用 NumPy 可以將尋找一個大約有 10 億個值的列表的最小值和最大值的時間 從大約 28 秒減少到 1 秒。這就是 NumPy 的強大之處。

使用 Python 列表創建 ndarray

有幾種方法可以在 NumPy 中創建 ndarray。

你可以通過使用元素列表來創建一個 ndarray:

  1. >>> my_ndarray = np.array([1, 2, 3, 4, 5])
  2. >>> print(my_ndarray)
  3. [1 2 3 4 5]

有了上面的 ndarray 定義,我將檢查幾件事。首先,上面定義的變量的類型是 numpy.ndarray。這是所有 NumPy ndarray 的類型:

  1. >>> type(my_ndarray)
  2. <class 'numpy.ndarray'>

這里要注意的另一件事是 “形狀shape”。ndarray 的形狀是 ndarray 的每個維度的長度。你可以看到,my_ndarray 的形狀是 (5,)。這意味著 my_ndarray 包含一個有 5 個元素的維度(軸)。

  1. >>> np.shape(my_ndarray)
  2. (5,)

數組中的維數被稱為它的 “rank”。所以上面的 ndarray 的秩是 1。

我將定義另一個 ndarray my_ndarray2 作為一個多維 ndarray。那么它的形狀會是什么呢?請看下面:

  1. >>> my_ndarray2 = np.array([(1, 2, 3), (4, 5, 6)])
  2. >>> np.shape(my_ndarray2)
  3. (2, 3)

這是一個秩為 2 的 ndarray。另一個要檢查的屬性是 dtype,也就是數據類型。檢查我們的 ndarray 的 dtype 可以得到以下結果:

  1. >>> my_ndarray.dtype
  2. dtype('int64')

int64 意味著我們的 ndarray 是由 64 位整數組成的。NumPy 不能創建混合類型的 ndarray,必須只包含一種類型的元素。如果你定義了一個包含混合元素類型的 ndarray,NumPy 會自動將所有的元素類型轉換為可以包含所有元素的最高元素類型。

例如,創建一個 int 和 float 的混合序列將創建一個 float64 的 ndarray:

  1. >>> my_ndarray2 = np.array([1, 2.0, 3])
  2. >>> print(my_ndarray2)
  3. [1. 2. 3.]
  4. >>> my_ndarray2.dtype
  5. dtype('float64')

另外,將其中一個元素設置為 string 將創建 dtype 等于 <U21 的字符串 ndarray,意味著我們的 ndarray 包含 unicode 字符串:

  1. >>> my_ndarray2 = np.array([1, '2', 3])
  2. >>> print(my_ndarray2)
  3. ['1' '2' '3']
  4. >>> my_ndarray2.dtype
  5. dtype('<U21')

size 屬性將顯示我們的 ndarray 中存在的元素總數:

  1. >>> my_ndarray = np.array([1, 2, 3, 4, 5])
  2. >>> my_ndarray.size
  3. 5

使用 NumPy 方法創建 ndarray

如果你不想直接使用列表來創建 ndarray,還有幾種可以用來創建它的 NumPy 方法。

你可以使用 np.zeros() 來創建一個填滿 0 的 ndarray。它需要一個“形狀”作為參數,這是一個包含行數和列數的列表。它還可以接受一個可選的 dtype 參數,這是 ndarray 的數據類型:

  1. >>> my_ndarray = np.zeros([2,3], dtype=int)
  2. >>> print(my_ndarray)
  3. [[0 0 0]
  4. [0 0 0]]

你可以使用 np. ones() 來創建一個填滿 1 的 ndarray:

  1. >>> my_ndarray = np.ones([2,3], dtype=int)
  2. >>> print(my_ndarray)
  3. [[1 1 1]
  4. [1 1 1]]

你可以使用 np.full() 來給 ndarray 填充一個特定的值:

  1. >>> my_ndarray = np.full([2,3], 10, dtype=int)
  2. >>> print(my_ndarray)
  3. [[10 10 10]
  4. [10 10 10]]

你可以使用 np.eye() 來創建一個單位矩陣 / ndarray,這是一個沿主對角線都是 1 的正方形矩陣。正方形矩陣是一個行數和列數相同的矩陣:

  1. >>> my_ndarray = np.eye(3, dtype=int)
  2. >>> print(my_ndarray)
  3. [[1 0 0]
  4. [0 1 0]
  5. [0 0 1]]

你可以使用 np.diag() 來創建一個沿對角線有指定數值的矩陣,而在矩陣的其他部分為 0

  1. >>> my_ndarray = np.diag([10, 20, 30, 40, 50])
  2. >>> print(my_ndarray)
  3. [[10 0 0 0 0]
  4. [ 0 20 0 0 0]
  5. [ 0 0 30 0 0]
  6. [ 0 0 0 40 0]
  7. [ 0 0 0 0 50]]

你可以使用 np.range() 來創建一個具有特定數值范圍的 ndarray。它是通過指定一個整數的開始和結束(不包括)范圍以及一個步長來創建的:

  1. >>> my_ndarray = np.arange(1, 20, 3)
  2. >>> print(my_ndarray)
  3. [ 1 4 7 10 13 16 19]

讀取 ndarray

ndarray 的值可以使用索引、分片或布爾索引來讀取。

使用索引讀取 ndarray 的值

在索引中,你可以使用 ndarray 的元素的整數索引來讀取數值,就像你讀取 Python 列表一樣。就像 Python 列表一樣,索引從 0 開始。

例如,在定義如下的 ndarray 中:

  1. >>> my_ndarray = np.arange(1, 20, 3)

第四個值將是 my_ndarray[3],即 10。最后一個值是 my_ndarray[-1],即 19

  1. >>> my_ndarray = np.arange(1, 20, 3)
  2. >>> print(my_ndarray[0])
  3. 1
  4. >>> print(my_ndarray[3])
  5. 10
  6. >>> print(my_ndarray[-1])
  7. 19
  8. >>> print(my_ndarray[5])
  9. 16
  10. >>> print(my_ndarray[6])
  11. 19

使用分片讀取 ndarray

你也可以使用分片來讀取 ndarray 的塊。分片的工作方式是用冒號(:)操作符指定一個開始索引和一個結束索引。然后,Python 將獲取該開始和結束索引之間的 ndarray 片斷:

  1. >>> print(my_ndarray[:])
  2. [ 1 4 7 10 13 16 19]
  3. >>> print(my_ndarray[2:4])
  4. [ 7 10]
  5. >>> print(my_ndarray[5:6])
  6. [16]
  7. >>> print(my_ndarray[6:7])
  8. [19]
  9. >>> print(my_ndarray[:-1])
  10. [ 1 4 7 10 13 16]
  11. >>> print(my_ndarray[-1:])
  12. [19]

分片創建了一個 ndarray 的引用(或視圖)。這意味著,修改分片中的值也會改變原始 ndarray 的值。

比如說:

  1. >>> my_ndarray[-1:] = 100
  2. >>> print(my_ndarray)
  3. [ 1 4 7 10 13 16 100]

對于秩超過 1 的 ndarray 的分片,可以使用 [行開始索引:行結束索引, 列開始索引:列結束索引] 語法:

  1. >>> my_ndarray2 = np.array([(1, 2, 3), (4, 5, 6)])
  2. >>> print(my_ndarray2)
  3. [[1 2 3]
  4. [4 5 6]]
  5. >>> print(my_ndarray2[0:2,1:3])
  6. [[2 3]
  7. [5 6]]

使用布爾索引讀取 ndarray 的方法

讀取 ndarray 的另一種方法是使用布爾索引。在這種方法中,你在方括號內指定一個過濾條件,然后返回符合該條件的 ndarray 的一個部分。

例如,為了獲得一個 ndarray 中所有大于 5 的值,你可以指定布爾索引操作 my_ndarray[my_ndarray > 5]。這個操作將返回一個包含所有大于 5 的值的 ndarray:

  1. >>> my_ndarray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
  2. >>> my_ndarray2 = my_ndarray[my_ndarray > 5]
  3. >>> print(my_ndarray2)
  4. [ 6 7 8 9 10]

例如,為了獲得一個 ndarray 中的所有偶數值,你可以使用如下的布爾索引操作:

  1. >>> my_ndarray2 = my_ndarray[my_ndarray % 2 == 0]
  2. >>> print(my_ndarray2)
  3. [ 2 4 6 8 10]

而要得到所有的奇數值,你可以用這個方法:

  1. >>> my_ndarray2 = my_ndarray[my_ndarray % 2 == 1]
  2. >>> print(my_ndarray2)
  3. [1 3 5 7 9]

ndarray 的矢量和標量算術

NumPy 的 ndarray 允許進行矢量和標量算術操作。在矢量算術中,在兩個 ndarray 之間進行一個元素的算術操作。在標量算術中,算術運算是在一個 ndarray 和一個常數標量值之間進行的。

如下的兩個 ndarray:

  1. >>> my_ndarray = np.array([1, 2, 3, 4, 5])
  2. >>> my_ndarray2 = np.array([6, 7, 8, 9, 10])

如果你將上述兩個 ndarray 相加,就會產生一個兩個 ndarray 的元素相加的新的 ndarray。例如,產生的 ndarray 的第一個元素將是原始 ndarray 的第一個元素相加的結果,以此類推:

  1. >>> print(my_ndarray2 + my_ndarray)
  2. [ 7 9 11 13 15]

這里,7 是 1 和 6 的和,這是我相加的 ndarray 中的前兩個元素。同樣,15 是 5 和10 之和,是最后一個元素。

請看以下算術運算:

  1. >>> print(my_ndarray2 - my_ndarray)
  2. [5 5 5 5 5]
  3. >>>
  4. >>> print(my_ndarray2 * my_ndarray)
  5. [ 6 14 24 36 50]
  6. >>>
  7. >>> print(my_ndarray2 / my_ndarray)
  8. [6. 3.5 2.66666667 2.25 2. ]

在 ndarray 中加一個標量值也有類似的效果,標量值被添加到 ndarray 的所有元素中。這被稱為“廣播broadcasting”:

  1. >>> print(my_ndarray + 10)
  2. [11 12 13 14 15]
  3. >>>
  4. >>> print(my_ndarray - 10)
  5. [-9 -8 -7 -6 -5]
  6. >>>
  7. >>> print(my_ndarray * 10)
  8. [10 20 30 40 50]
  9. >>>
  10. >>> print(my_ndarray / 10)
  11. [0.1 0.2 0.3 0.4 0.5]

ndarray 的排序

有兩種方法可以對 ndarray 進行原地或非原地排序。原地排序會對原始 ndarray 進行排序和修改,而非原地排序會返回排序后的 ndarray,但不會修改原始 ndarray。我將嘗試這兩個例子:

  1. >>> my_ndarray = np.array([3, 1, 2, 5, 4])
  2. >>> my_ndarray.sort()
  3. >>> print(my_ndarray)
  4. [1 2 3 4 5]

正如你所看到的,sort() 方法對 ndarray 進行原地排序,并修改了原數組。

還有一個方法叫 np.sort(),它對數組進行非原地排序:

  1. >>> my_ndarray = np.array([3, 1, 2, 5, 4])
  2. >>> print(np.sort(my_ndarray))
  3. [1 2 3 4 5]
  4. >>> print(my_ndarray)
  5. [3 1 2 5 4]

正如你所看到的,np.sort() 方法返回一個已排序的 ndarray,但沒有修改它。

總結

我已經介紹了很多關于 NumPy 和 ndarray 的內容。我談到了創建 ndarray,讀取它們的不同方法,基本的向量和標量算術,以及排序。NumPy 還有很多東西可以探索,包括像 union() 和 intersection()這樣的集合操作,像 min() 和 max() 這樣的統計操作,等等。

我希望我上面演示的例子是有用的。祝你在探索 NumPy 時愉快。 

 

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

2010-03-26 18:06:10

PythonC API

2021-08-10 13:17:31

NumPy內存Python

2021-08-10 09:04:43

內存視圖 NumPy

2009-08-27 10:45:03

ibmdw云計算

2013-12-25 10:08:42

ember.js異步處理

2023-05-04 07:43:47

MySQL數據庫

2022-04-15 08:33:51

PythonGraph以太坊數據

2022-04-25 10:26:11

Python代碼瀏覽器

2022-07-25 11:33:48

Python大文件

2015-03-09 09:44:35

GmailiOS

2024-01-07 16:46:19

FiberHTTPWeb

2023-10-28 16:30:19

Golang開發

2014-07-22 09:01:53

SwiftJSON

2022-04-29 07:35:49

SpringMVC構造函數

2021-09-14 10:20:48

Python股票布林帶

2021-07-27 10:10:21

CuPyNumpyPython

2024-01-11 10:12:19

MySQL數據庫

2021-12-17 08:27:55

NumpyPython 機器學習

2020-11-05 11:30:46

PythonNumPy數組

2022-01-04 09:24:32

Python Excel 表格
點贊
收藏

51CTO技術棧公眾號

一本色道久久88综合亚洲精品ⅰ| 亚洲精品久久嫩草网站秘色| 国产成人久久精品| 欧美第一页在线观看| 国产图片一区| 欧美自拍丝袜亚洲| 蜜桃视频一区二区在线观看| 日韩毛片在线一区二区毛片| 久久国产夜色精品鲁鲁99| 欧美成人精品在线播放| 欧美激情aaa| 国产一区二区三区精品在线观看 | 麻豆传媒一区二区| ,亚洲人成毛片在线播放| 亚洲国产一区二区精品专区| 尤物yw午夜国产精品视频明星| 国产探花一区二区三区| 99九九久久| 精品久久久久久中文字幕一区奶水 | 红桃av在线播放| 欧美激情成人动漫| 国产精品免费视频网站| 精品亚洲一区二区三区四区五区高| 中文亚洲av片在线观看| 国产一区导航| 欧美激情在线狂野欧美精品| 三级黄色片在线观看| 九九热线有精品视频99| 精品国产免费一区二区三区香蕉| 成年网站在线播放| 午夜精品成人av| 亚洲sss视频在线视频| 欧美另类videosbestsex日本| 国产黄色片在线观看| 91欧美激情一区二区三区成人| 成人疯狂猛交xxx| 中文字幕在线播放日韩| 视频一区欧美日韩| 97精品伊人久久久大香线蕉| 青青草手机视频在线观看| 欧美激情理论| 丝袜一区二区三区| 日韩欧美黄色网址| 国产精品嫩模av在线| 亚洲精品视频免费| 一级性生活大片| 婷婷成人在线| 亚洲日本成人女熟在线观看| 亚洲a v网站| 精品国产91久久久久久浪潮蜜月| 亚洲午夜激情免费视频| 免费看黄色的视频| 欧美一二区在线观看| 亚洲午夜色婷婷在线| 男女做爰猛烈刺激| 亚洲宅男网av| 国产一级揄自揄精品视频| 第一次破处视频| 日本激情一区| 久久精品国产久精国产思思| 极品久久久久久| 欧美一区精品| 国外视频精品毛片| av网站中文字幕| 丝瓜av网站精品一区二区| 国产精品视频午夜| 国产女人18毛片水真多| 国产91对白在线观看九色| 国产亚洲一区在线播放| 青青操在线视频| 中文在线免费一区三区高中清不卡| 亚洲午夜精品一区二区三区| 黄色成年人视频在线观看| 亚洲激情五月婷婷| 少妇av一区二区三区无码| 最新中文字幕在线播放| 欧美日韩精品一区二区三区 | 国产黄页在线观看| 日本欧美韩国| 欧美一区二区三区婷婷月色| 一级少妇精品久久久久久久| 最新国产精品视频| 久久精品成人欧美大片| 欧美成人aaaaⅴ片在线看| 久久久久国产精品一区三寸| 国产精品丝袜视频| 亚洲欧美国产高清va在线播放| 99re热这里只有精品免费视频| 日韩欧美激情一区二区| 中文在线字幕免费观看| 欧美性xxxx极品hd欧美风情| 美女在线视频一区二区| 超碰精品在线观看| 在线电影av不卡网址| 久久中文字幕在线观看| 奇米四色…亚洲| 国产三区精品| 欧美成人二区| 欧美色videos| 99热这里只有精品2| 伊人久久大香线蕉综合网蜜芽| www.国产精品一二区| 日韩手机在线观看| 国产专区综合网| 欧美日韩一区二| 日本小视频在线免费观看| 91久久免费观看| 国产chinesehd精品露脸| 欧美三级三级| 57pao精品| 成人高潮片免费视频| 国产欧美日韩综合精品一区二区| www.在线观看av| 久久爱.com| 国产视频久久久久久久| 青草影院在线观看| 美女一区二区久久| 免费观看成人在线| 2021中文字幕在线| 欧美一区二区三区日韩视频| 免费看91的网站| 99在线观看免费视频精品观看| 91久久精品在线| 在线看免费av| 在线看日本不卡| 人妻丰满熟妇aⅴ无码| 亚洲视频免费| 99re视频在线播放| huan性巨大欧美| 欧美嫩在线观看| 91禁男男在线观看| 日韩精品电影在线| 精品国产一区二区三区麻豆免费观看完整版 | 欧美男男tv网站在线播放| 日韩视频一区二区三区| 国产精品精品软件男同| 国内外成人在线| 一区二区三区欧美成人| 成人黄色图片网站| 在线播放国产精品| 丰满熟女人妻一区二区三| 国产亚洲一区二区在线观看| 午夜精品久久久久久久无码| 麻豆精品少妇| 97视频在线看| 亚洲 小说区 图片区 都市| 午夜精品在线看| 女同性恋一区二区三区| 亚洲电影在线| 九九九热999| 伊人久久国产| 国产亚洲免费的视频看| 国产真人无遮挡作爱免费视频| 久久天天做天天爱综合色| www.com毛片| 在线日韩网站| 国产精品久久91| 在线观看黄av| 日韩欧美精品在线视频| 久久成人在线观看| 99久久精品99国产精品| 黄色片久久久久| 成人羞羞网站入口| 91久久久久久久一区二区| 日韩免费影院| 亚洲第一精品福利| 亚洲图片在线视频| 中文字幕亚洲欧美在线不卡| 亚洲第一区第二区第三区| 欧美福利网址| 蜜桃视频日韩| 狠狠久久综合| 欧美风情在线观看| 青青草免费观看免费视频在线| 欧美在线一二三| 老湿机69福利| 97se狠狠狠综合亚洲狠狠| 超碰av在线免费观看| 中文字幕免费一区二区三区| 国产精品一区视频| 欧美xnxx| 欧美成人在线免费视频| 亚洲 欧美 激情 小说 另类| 欧美三级欧美一级| 国产精品日日夜夜| 国产精品视频观看| 99久久久无码国产精品性波多| 六月天综合网| 久久久久福利视频| 深夜福利久久| 国产精品久久国产三级国电话系列| 成人爽a毛片免费啪啪| 插插插亚洲综合网| 男人久久精品| 精品久久久久av影院| 国产天堂第一区| 亚洲一区二区av在线| www.99热| 99天天综合性| 99热这里只有精品2| 日韩精品一级二级| 久久久久久久久久久99| 婷婷综合五月| 亚欧精品在线| 亚洲品质自拍| 国产精品xxxx| 日韩欧美激情| 国产成人精品视频| 91超碰在线免费| 久久国产精品首页| 丝袜美腿美女被狂躁在线观看| 日韩黄色av网站| 成人免费公开视频| 欧美精品自拍偷拍| 欧美成人精品网站| 大伊人狠狠躁夜夜躁av一区 | 高跟丝袜欧美一区| 久久久无码一区二区三区| 国产精品福利一区二区三区| av在线网站观看| 97久久精品人人做人人爽50路 | 91网站视频在线观看| 中文在线字幕观看| 精品综合免费视频观看| 9久久婷婷国产综合精品性色| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲人成影视在线观看| 国产一区二区电影在线观看| 精品亚洲欧美日韩| 欧美重口另类| 国产日韩欧美一区二区| 欧美视频三区| 成人精品福利视频| 欧美成a人片免费观看久久五月天| 日本欧美黄网站| 超碰一区二区| 日韩av黄色在线观看| 亚洲一二三四| 日本三级久久久| 亚洲天堂一区二区| 青青a在线精品免费观看| 成人美女黄网站| 国产不卡av在线免费观看| 日韩av福利| 国产成人精品久久二区二区| 欧美一级大片| 国产精品久久不能| 成人在线免费| 成人网在线观看| 日韩精品视频中文字幕| www.成人三级视频| 精品精品国产三级a∨在线| 国产一区免费在线| 美女av一区| 欧美高清性xxxxhd| 波多野结衣一区| 水蜜桃亚洲一二三四在线| 日韩国产在线| 激情五月五月婷婷| 黑人一区二区| 噜噜噜久久亚洲精品国产品麻豆| 一本色道久久| 50路60路老熟妇啪啪| 日本欧美在线看| www,av在线| 成人黄色av网站在线| 波多野吉衣中文字幕| 国产精品女人毛片| 五月天丁香激情| 欧美日韩视频在线| 一级久久久久久| 欧美一级二级三级蜜桃| 性色av蜜臀av| 亚洲精品自拍偷拍| 免费在线毛片网站| 欧美精品videos| 欧美男体视频| 国产日本欧美视频| 大陆精大陆国产国语精品| 精品国产乱码久久久久久郑州公司 | 亚洲美女网站| 国产成人无码一二三区视频| 蜜臀99久久精品久久久久久软件| 午夜诱惑痒痒网| 97久久精品人人做人人爽| 91成人在线免费视频| 亚洲色欲色欲www| 国产欧美一区二区三区在线看蜜臂| 欧美最新大片在线看| 国产黄色一级大片| 亚洲图片制服诱惑| av影视在线| 成人国产精品免费视频| 欧美aaaaaaaa牛牛影院| 亚洲一区二区三区乱码 | 男女视频在线看| 成人免费视频网站在线观看| 国产黄色大片免费看| 亚洲中国最大av网站| 亚洲成人av网址| 亚洲成人精品av| 巨大荫蒂视频欧美另类大| 欧美自拍视频在线观看| 五月亚洲婷婷| 亚洲综合五月天| 男人的天堂成人在线| 丰满少妇一区二区三区专区| 久久精品欧美一区二区三区麻豆| 麻豆一区二区三区精品视频| 欧美日韩aaa| 黄视频在线播放| 97人人做人人爱| 久久国产精品美女| 一本色道久久综合亚洲二区三区| 99热精品在线| 激情av中文字幕| 亚洲色大成网站www久久九九| 国产午夜麻豆影院在线观看| 日韩欧美精品在线视频| 二区三区在线观看| 国产精品久久久久久久9999| 婷婷综合成人| 成人午夜视频在线观看免费| 国产精品一区二区在线观看不卡| 欧美激情久久久久久久| 午夜精品免费在线| 国产小视频一区| 欧美日韩国产成人| 疯狂欧洲av久久成人av电影| 日韩欧美激情一区二区| 丝袜a∨在线一区二区三区不卡| 好吊日免费视频| 精品女同一区二区三区在线播放| 黄色小视频免费观看| 久久久久一本一区二区青青蜜月 | 精品国产髙清在线看国产毛片 | 一卡二卡三卡日韩欧美| 国产av无码专区亚洲av| 不卡av日日日| 麻豆国产一区| 免费观看亚洲视频| 国产真实乱偷精品视频免| 黄色录像免费观看| 日韩一区二区电影| 在线中文字幕电影| 不卡一卡2卡3卡4卡精品在| 欧美先锋影音| 人妻体内射精一区二区三区| 亚洲国产精品综合小说图片区| 亚洲欧美激情另类| 久久久之久亚州精品露出| 久久久免费毛片| aa在线观看视频| 久久蜜桃av一区二区天堂| 久久久久久无码午夜精品直播| 亚洲石原莉奈一区二区在线观看| 亚洲伦乱视频| 在线综合视频网站| 国产成人精品午夜视频免费| 国产午夜精品无码一区二区| 亚洲黄色免费三级| 色8久久影院午夜场| 亚洲精品高清视频| 国产乱人伦精品一区二区在线观看| 真实国产乱子伦对白在线| 精品国免费一区二区三区| 96av在线| 日产精品久久久一区二区| 看片网站欧美日韩| 久久久精品视频免费观看| 亚洲国产成人一区| 久久久人成影片一区二区三区在哪下载| 一本久道久久综合狠狠爱亚洲精品| 国产精品一色哟哟哟| 特一级黄色大片| 中文字幕精品www乱入免费视频| 9999精品视频| 国产3p露脸普通话对白| 欧美激情中文字幕| 韩国av免费在线| 国产精品99久久久久久人| 中文在线播放一区二区| 朝桐光av一区二区三区| 欧美图区在线视频| 丝袜美女在线观看| 欧美一区视久久| 国产高清不卡二三区| 国产又大又粗又爽| 久久国产精彩视频| 首页亚洲中字| www激情五月| 日韩欧美成人精品| 伊人手机在线| 视频一区视频二区视频三区视频四区国产| 国产精品系列在线播放| 天堂在线免费观看视频| 欧美精品一区二区三区国产精品| 免费视频国产一区| www.555国产精品免费| 欧美日韩精品高清|