婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python scipy 稀疏矩陣的使用說明

python scipy 稀疏矩陣的使用說明

熱門標簽:河北防封卡電銷卡 手機網頁嵌入地圖標注位置 開封自動外呼系統怎么收費 開封語音外呼系統代理商 地圖標注線上如何操作 電銷機器人的風險 天津電話機器人公司 應電話機器人打電話違法嗎 400電話辦理哪種

稀疏矩陣格式 coo_matrix

coo_matrix

是最簡單的稀疏矩陣存儲方式,采用三元組(row, col, data)(或稱為ijv format)的形式來存儲矩陣中非零元素的信息。

在實際使用中,一般coo_matrix用來創建矩陣,因為coo_matrix無法對矩陣的元素進行增刪改操作;創建成功之后可以轉化成其他格式的稀疏矩陣(如csr_matrix、csc_matrix)進行轉置、矩陣乘法等操作。

coo_matrix可以通過四種方式實例化,除了可以通過coo_matrix(D), D代表密集矩陣;coo_matrix(S), S代表其他類型稀疏矩陣或者coo_matrix((M, N), [dtype])構建一個shape為M*N的空矩陣,默認數據類型是d,還可以通過(row, col, data)三元組初始化:

>>> import numpy as np
>>> from scipy.sparse import coo_matrix
>>> _row  = np.array([0, 3, 1, 0])
>>> _col  = np.array([0, 3, 1, 2])
>>> _data = np.array([4, 5, 7, 9])
>>> coo = coo_matrix((_data, (_row, _col)), shape=(4, 4), dtype=np.int)
>>> coo.todense()  # 通過toarray方法轉化成密集矩陣(numpy.matrix)
>>> coo.toarray()  # 通過toarray方法轉化成密集矩陣(numpy.ndarray)
array([[4, 0, 9, 0],
       [0, 7, 0, 0],
       [0, 0, 0, 0],
       [0, 0, 0, 5]])

上面通過triplet format的形式構建了一個coo_matrix對象,我們可以看到坐標點(0,0)對應值為4,坐標點(1,1)對應值為7等等,這就是coo_matrix。coo_matrix對象有很多方法,大多數是elementwise的操作函數;coo_matrix對象有以下屬性:

dtype dtype

矩陣中元素的數據類型

shape 2-tuple

獲取矩陣的shape

ndim int

獲取矩陣的維度,當然值是2咯

nnz

存儲值的個數,包括顯示聲明的零元素(注意)

data

稀疏矩陣存儲的值,是一個一維數組,即上面例子中的_data

row

與data同等長度的一維數組,表征data中每個元素的行號

col

與data同等長度的一維數組,表征data中每個元素的列號

在實際應用中,coo_matrix矩陣文件通常存成以下形式,表示稀疏矩陣是coo_matrix(coordinate),由13885行1列組成,共有949個元素值為非零,數據類型為整形。

​ 下面給出coo_matrix矩陣文件讀寫示例代碼,mmread()用于讀取稀疏矩陣,mmwrite()用于寫入稀疏矩陣,mminfo()用于查看稀疏矩陣文件元信息。(這三個函數的操作不僅僅限于coo_matrix)

from scipy.io import mmread, mmwrite, mminfo
HERE = dirname(__file__)
coo_mtx_path = join(HERE, 'data/matrix.mtx')
coo_mtx = mmread(coo_mtx_path)
print(mminfo(coo_mtx_path))
# (13885, 1, 949, 'coordinate', 'integer', 'general')
# (rows, cols, entries, format, field, symmetry)
mmwrite(join(HERE, 'data/saved_mtx.mtx'), coo_mtx)

coo_matrix的優點:

有利于稀疏格式之間的快速轉換(tobsr()、tocsr()、to_csc()、to_dia()、to_dok()、to_lil())

允許又重復項(格式轉換的時候自動相加)

能與CSR / CSC格式的快速轉換

coo_matrix的缺點:

不能直接進行算術運算

csr_matrix ​

csr_matrix,全稱Compressed Sparse Row matrix,即按行壓縮的稀疏矩陣存儲方式,由三個一維數組indptr, indices, data組成。

這種格式要求矩陣元按行順序存儲,每一行中的元素可以亂序存儲。

那么對于每一行就只需要用一個指針表示該行元素的起始位置即可。

indptr存儲每一行數據元素的起始位置,indices這是存儲每行中數據的列號,與data中的元素一一對應。

csr_matrix可用于各種算術運算:它支持加法,減法,乘法,除法和矩陣冪等操作。

其有五種實例化方法,其中前四種初始化方法類似coo_matrix,即通過密集矩陣構建、通過其他類型稀疏矩陣轉化、構建一定shape的空矩陣、通過(row, col, data)構建矩陣。

其第五種初始化方式這是直接體現csr_matrix的存儲特征:csr_matrix((data, indices, indptr), [shape=(M, N)]),意思是,矩陣中第i行非零元素的列號為indices[indptr[i]:indptr[i+1]],相應的值為data[indptr[i]:indptr[i+1]]

舉個例子:

>>> import numpy as np
>>> from scipy.sparse import csr_matrix
>>> indptr = np.array([0, 2, 3, 6])
>>> indices = np.array([0, 2, 2, 0, 1, 2])
>>> data = np.array([1, 2, 3, 4, 5, 6])
>>> csr = csr_matrix((data, indices, indptr), shape=(3, 3)).toarray()
array([[1, 0, 2],
       [0, 0, 3],
       [4, 5, 6]])

csr_matrix同樣有很多方法,其中tobytes(),tolist(), tofile(),tostring()值得注意,其他具體參考官方文檔,csr_matrix對象屬性前五個同coo_matrix,另外還有屬性如下:

indices

與屬性data一一對應,元素值代表在某一行的列號

indptr

csr_matrix各行的起始值,length(csr_object.indptr) == csr_object.shape[0] + 1

has_sorted_indices

判斷每一行的indices是否是有序的,返回bool值

csr_matrix的優點:

高效的算術運算CSR + CSR,CSR * CSR等高效的行切片快速矩陣運算

csr_matrix的缺點:

列切片操作比較慢(考慮csc_matrix)稀疏結構的轉換比較慢(考慮lil_matrix或doc_matrix)

csc_matrix

​ csc_matrix和csr_matrix正好相反,即按列壓縮的稀疏矩陣存儲方式,同樣由三個一維數組indptr, indices, data組成,如下圖所示:

其實例化方式、屬性、方法、優缺點和csr_matrix基本一致,這里不再贅述,它們之間唯一的區別就是按行或按列壓縮進行存儲。

而這一區別決定了csr_matrix擅長行操作;csc_matrix擅長列操作,進行運算時需要進行合理存儲結構的選擇。

lil_matrix

​ lil_matrix,即List of Lists format,又稱為Row-based linked list sparse matrix。它使用兩個嵌套列表存儲稀疏矩陣:data保存每行中的非零元素的值,rows保存每行非零元素所在的列號(列號是順序排序的)。

這種格式很適合逐個添加元素,并且能快速獲取行相關的數據。

其初始化方式同coo_matrix初始化的前三種方式:通過密集矩陣構建、通過其他矩陣轉化以及構建一個一定shape的空矩陣。

lil_matrix可用于算術運算:支持加法,減法,乘法,除法和矩陣冪。其屬性前五個同coo_matrix,另外還有rows屬性,是一個嵌套List,表示矩陣每行中非零元素的列號。

LIL matrix本身的設計是用來方便快捷構建稀疏矩陣實例,而算術運算、矩陣運算則轉化成CSC、CSR格式再進行,構建大型的稀疏矩陣還是推薦使用COO格式。

LIL format優點

支持靈活的切片操作行切片操作效率高,列切片效率低

稀疏矩陣格式之間的轉化很高效(tobsr()、tocsr()、to_csc()、to_dia()、to_dok()、to_lil())

LIL format缺點

加法操作效率低 (consider CSR or CSC)

列切片效率低(consider CSC)

矩陣乘法效率低 (consider CSR or CSC)

dok_matrix ​

dok_matrix,即Dictionary Of Keys based sparse matrix,是一種類似于coo matrix但又基于字典的稀疏矩陣存儲方式,key由非零元素的的坐標值tuple(row, column)組成,value則代表數據值。

dok matrix非常適合于增量構建稀疏矩陣,并一旦構建,就可以快速地轉換為coo_matrix。

其屬性和coo_matrix前四項同;其初始化方式同coo_matrix初始化的前三種:通過密集矩陣構建、通過其他矩陣轉化以及構建一個一定shape的空矩陣。

對于dok matrix,可用于算術運算:它支持加法,減法,乘法,除法和矩陣冪;允許對單個元素進行快速訪問( O(1) ); 不允許重復。

>>> import numpy as np
>>> from scipy.sparse import dok_matrix
>>> np.random.seed(10)
>>> matrix = random(3, 3, format='dok', density=0.4)
>>> matrix[1, 1] = 33
>>> matrix[2, 1] = 10
>>> matrix.toarray()
array([[ 0.        ,  0.        ,  0.        ],
       [ 0.        , 33.        ,  0.        ],
       [ 0.19806286, 10.        ,  0.22479665]])
>>> dict(matrix)
{(2, 0): 0.19806286475962398, (2, 1): 10.0, (2, 2): 0.22479664553084766, (1, 1): 33.0}
>>> isinstance(matrix, dict)
True

在上面代碼最后可以看到,實際上dok_matrix實例也是dict實例,在實現上繼承了dict類。

dia_matrix

​ dia_matrix,全稱Sparse matrix with DIAgonal storage,是一種對角線的存儲方式。

如下圖中,將稀疏矩陣使用offsets和data兩個矩陣來表示。offsets表示data中每一行數據在原始稀疏矩陣中的對角線位置k(k>0, 對角線往右上角移動;k0, 對角線往左下方移動;k=0,主對角線)。

該格式的稀疏矩陣可用于算術運算:它們支持加法,減法,乘法,除法和矩陣冪。

​dia_matrix五個屬性同coo matrix, 另外還有屬性offsets;dia_matrix有四種初始化方式,其中前三種初始化方式同coo_matrix前三種初始化方式,即:通過密集矩陣構建、通過其他矩陣轉化以及構建一個一定shape的空矩陣。

第四種初始化方式如下:

dia_matrix((data, offsets), shape=(M, N)) ,

​ 其中,data[k,:]存儲著稀疏矩陣offsets[k]對角線上的值

>>> data = np.arange(15).reshape(3, -1) + 1
>>> offsets = np.array([0, -3, 2])
>>> dia = sparse.dia_matrix((data, offsets), shape=(7, 5))
>>> dia.toarray()
array([[ 1,  0, 13,  0,  0],
       [ 0,  2,  0, 14,  0],
       [ 0,  0,  3,  0, 15],
       [ 6,  0,  0,  4,  0],
       [ 0,  7,  0,  0,  5],
       [ 0,  0,  8,  0,  0],
       [ 0,  0,  0,  9,  0]])

不是很常用,了解即可

bsr_matrix

​ bsr_matrix,全稱Block Sparse Row matrix,這種壓縮方式極其類似CSR格式,但使用分塊的思想對稀疏矩陣進行按行壓縮。所以,BSR適用于具有dense子矩陣的稀疏矩陣。該種矩陣有五種初始化方式,分別如下:

bsr_matrix(D, [blocksize=(R,C)])

D是一個M*N的二維dense矩陣;blocksize需要滿足條件:M % R = 0和N % C = 0,若不給定該參數,內部將會應用啟發式的算法自動決定一個合適的blocksize.

bsr_matrix(S, [blocksize=(R,C)])

S是指其他類型的稀疏矩陣

bsr_matrix((M, N), [blocksize=(R,C), dtype])

構建一個shape為M*N的空矩陣

bsr_matrix((data, ij), [blocksize=(R,C), shape=(M, N)])

data 和ij 滿足條件: a[ij[0, k], ij[1, k]] = data[k]

bsr_matrix((data, indices, indptr), [shape=(M, N)])

data.shape一般是k*R*C,其中R、C分別代表block的行和列長,k代表有幾個小block矩陣;第i行的塊列索引存儲在indices[indptr[i]:indptr[i+1]],其值是data[ indptr[i]: indptr[i+1] ]。

bsr_matrix可用于算術運算:支持加法,減法,乘法,除法和矩陣冪。如下面的例子,對于許多稀疏算術運算,BSR比CSR和CSC更有效:

>>> from scipy.sparse import bsr_matrix
>>> import numpy
>>> indptr = np.array([0, 2, 3, 6])
>>> indices = np.array([0, 2, 2, 0, 1, 2])
>>> data = np.array([1, 2, 3, 4, 5, 6]).repeat(4).reshape(6, 2, 2)
>>> bsr_matrix((data,indices,indptr), shape=(6, 6)).toarray()
array([[1, 1, 0, 0, 2, 2],
       [1, 1, 0, 0, 2, 2],
       [0, 0, 0, 0, 3, 3],
       [0, 0, 0, 0, 3, 3],
       [4, 4, 5, 5, 6, 6],
       [4, 4, 5, 5, 6, 6]])

可以通過熱圖觀察矩陣有沒有明顯分塊模式再決定使不使用該方式

bsr matrix對象擁有9個屬性,前四個屬性與coo matrix相同,另外還有以下屬性(注意csr matrix和bsr matrix之間的區別與聯系):

data

即稀疏矩陣的數組,data.shape一般是k*R*C

indices

與屬性data中的k個二維矩陣一一對應,元素值代表在某一行的列號

indptr

bsr各行起始起始值

blocksize

即tuple(R,C)

has_sorted_indices

判斷每一行的indices是否是有序的,返回bool值

實用函數

構造特殊稀疏矩陣

scipy.sparse模塊還包含一些便捷函數,用于快速構建單位矩陣、對角矩陣等,下面做一個簡單的匯總:

方法 用途
identity(n[, dtype, format]) 生成稀疏單位矩陣
kron(A, B[, format]) sparse matrices A 和 B的克羅內克積
kronsum(A, B[, format]) sparse matrices A 和 B的克羅內克和
diags(diagonals[, offsets, shape, format, dtype]) 構建稀疏對角陣
spdiags(data, diags, m, n[, format]) 構建稀疏對角陣,同上,但不可指定shape
block_diag(mats[, format, dtype]) mats為iterable, 包含多個矩陣,根據mats構建塊對角稀疏矩陣。
tril(A[, k, format]) 以稀疏格式返回矩陣的下三角部分
triu(A[, k, format]) 以稀疏格式返回矩陣的上三角部分
bmat(blocks[, format, dtype]) 從稀疏子塊構建稀疏矩陣
hstack(blocks[, format, dtype]) 水平堆疊稀疏矩陣(column wise)
vstack(blocks[, format, dtype]) 垂直堆疊稀疏矩陣 (row wise)
rand(m, n[, density, format, dtype, …]) 使用均勻分布的值生成給定形狀和密度的稀疏矩陣
random(m, n[, density, format, dtype, …]) 使用隨機分布的值生成給定形狀和密度的稀疏矩陣
eye(m[, n, k, dtype, format]) 生成稀疏單位對角陣(默認DIAgonal format)

​ scipy.sparse.bmat舉例:

In [1]: A = np.arange(8).reshape(2, 4)
In [2]: T = np.tri(5, 4)
In [3]: L = [[8] * 4] * 2
In [4]: I = sparse.identity(4)
In [5]: Z = sparse.coo_matrix((2, 3))
In [6]: sp.bmat([[   A,    Z,    L],
    ...:          [None, None,    I],
    ...:          [   T, None, None]], dtype=int)
Out[7]:
11x11 sparse matrix of type 'class 'numpy.int64'>'
        with 33 stored elements in COOrdinate format>
In [8]: _.toarray()  # ipython previous output
Out[9]:
array([[0, 1, 2, 3, 0, 0, 0, 8, 8, 8, 8],
       [4, 5, 6, 7, 0, 0, 0, 8, 8, 8, 8],
       [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
       [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
       [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
       [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]])

稀疏矩陣類型判斷

scipy.sparse模塊還包含一些判斷稀疏矩陣類型的函數,這里需要注意的是,issparse() 和 isspmatrix() 是相同的函數,也許是由于歷史原因保留下來了兩個。

isspars(x)
isspmatrix(x)
isspmatrix_csc(x)
isspmatrix_csr(x)
isspmatrix_bsr(x)
isspmatrix_lil(x)
isspmatrix_dok(x)
isspmatrix_coo(x)
isspmatrix_dia(x)

稀疏矩陣存取

load_npz(file) 從.npz文件中讀取稀疏矩陣

save_npz(file, matrix[,compressed]) 將稀疏矩陣寫入.npz文件中

其他

find(A) 返回稀疏矩陣中非零元素的索引以及值

經驗總結

要有效地構造矩陣,請使用dok_matrix或lil_matrix

lil_matrix類支持基本切片和花式索引,其語法與NumPy Array類似;lil_matrix形式是基于row的,因此能夠很高效的轉為csr,但是轉為csc效率相對較低。

強烈建議不要直接使用NumPy函數運算稀疏矩陣

如果你想將NumPy函數應用于這些矩陣,首先要檢查SciPy是否有自己的給定稀疏矩陣類的實現,或者首先將稀疏矩陣轉換為NumPy數組(使用類的toarray()方法)。

要執行乘法或轉置等操作,首先將矩陣轉換為CSC或CSR格式,效率高

CSR格式特別適用于快速矩陣矢量產品

CSR,CSC和COO格式之間的所有轉換都是線性復雜度。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Python 如何解決稀疏矩陣運算
  • Python selenium模擬網頁點擊爬蟲交管12123違章數據
  • python中os.path.join()函數實例用法
  • python實現簡單的井字棋
  • python 實現體質指數BMI計算

標簽:六盤水 駐馬店 常州 成都 宿遷 山東 江蘇 蘭州

巨人網絡通訊聲明:本文標題《python scipy 稀疏矩陣的使用說明》,本文關鍵詞  python,scipy,稀疏,矩陣,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python scipy 稀疏矩陣的使用說明》相關的同類信息!
  • 本頁收集關于python scipy 稀疏矩陣的使用說明的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    中文字幕日韩av资源站| 国产精品一级在线| 日韩三级电影网址| 亚洲另类春色校园小说| 免费高清在线一区| 在线免费亚洲电影| 久久九九影视网| 国产精品国产三级国产普通话三级| 韩国av一区二区三区| 欧美色大人视频| 亚洲美腿欧美偷拍| 国产成人精品一区二区三区网站观看| 一区二区三区在线观看动漫| 国产精品高潮久久久久无| 色哟哟国产精品| 91麻豆精品视频| 亚洲成av人片| 国产精品国产三级国产aⅴ原创 | 亚洲激情图片一区| 成人深夜福利app| 日韩福利电影在线观看| av动漫一区二区| 久久久久久久综合| 国产麻豆成人传媒免费观看| 69精品人人人人| 日韩在线卡一卡二| 欧美性色黄大片| 亚洲va天堂va国产va久| 欧美精品在线观看播放| 亚洲精品免费播放| 欧美日韩一区不卡| 亚洲一区在线观看免费 | 亚洲国产精品高清| 激情文学综合网| 欧美日韩国产美女| 蜜桃av一区二区在线观看| 色综合天天综合| 亚洲国产欧美在线人成| 欧美午夜一区二区三区免费大片| 26uuu国产在线精品一区二区| 狠狠色丁香久久婷婷综合_中| 欧美成人精品二区三区99精品| 韩国女主播一区二区三区| 日韩欧美一区二区视频| 亚洲一区视频在线| 91精品国产高清一区二区三区蜜臀| 亚洲一区二区在线免费看| 在线成人av网站| 美女视频免费一区| 欧美一区二区高清| 精品一二线国产| 麻豆精品在线播放| 精品欧美一区二区久久| 日韩欧美一级二级三级| 欧美一区二区三区不卡| 精品视频999| 另类调教123区| 久久国产综合精品| 国产一区二区三区在线观看免费视频| 香蕉加勒比综合久久| 不卡一区在线观看| 性做久久久久久| 欧美一区二视频| 亚洲第一福利一区| 国产精品人人做人人爽人人添| 91丨九色丨蝌蚪丨老版| 免费的成人av| 欧美激情艳妇裸体舞| 7777女厕盗摄久久久| 国产一区二区三区日韩| 依依成人综合视频| 中文字幕欧美三区| 欧美视频日韩视频在线观看| 国产99久久久国产精品免费看 | 2014亚洲片线观看视频免费| 91原创在线视频| 亚洲国产色一区| 欧美三级韩国三级日本一级| 国产福利视频一区二区三区| 亚洲精品乱码久久久久久久久| 久久综合999| 不卡的av中国片| 激情小说亚洲一区| 亚洲另类在线一区| 中文字幕在线免费不卡| 日韩欧美在线网站| 99久久99久久精品免费看蜜桃| 狠狠色综合色综合网络| 亚洲黄色在线视频| 亚洲视频网在线直播| 日韩精品一区二区三区蜜臀 | 国产精品一区二区三区乱码| 亚洲精品国产品国语在线app| 久久你懂得1024| 欧美裸体bbwbbwbbw| 91高清视频在线| 国产成人自拍高清视频在线免费播放| 亚洲国产毛片aaaaa无费看| 中文字幕佐山爱一区二区免费| 欧美一卡二卡在线观看| 欧美人狂配大交3d怪物一区| 成人动漫在线一区| 国产一区二区三区在线观看精品| 日本欧美一区二区三区| 1000部国产精品成人观看| 国产精品污污网站在线观看| 日韩天堂在线观看| 欧美色老头old∨ideo| 91成人在线免费观看| 成人免费毛片app| 成熟亚洲日本毛茸茸凸凹| 免费成人在线网站| 亚洲成av人在线观看| 亚洲一区二区精品3399| 国产精品久线在线观看| 久久久99久久| 国产美女精品在线| 欧美激情在线观看视频免费| 成人免费看片app下载| 五月婷婷综合激情| 欧美一区二区女人| 国产一区二区按摩在线观看| 亚洲女同ⅹxx女同tv| 欧美r级电影在线观看| 色综合婷婷久久| 粉嫩av亚洲一区二区图片| 国内外成人在线| 亚洲精品高清在线| 久久夜色精品国产噜噜av| 成人av电影免费观看| 日日夜夜一区二区| 蜜臀av一区二区在线免费观看| 亚洲视频综合在线| 国产免费成人在线视频| 91电影在线观看| 亚洲.国产.中文慕字在线| 国产日韩欧美综合一区| 欧美猛男男办公室激情| 91国偷自产一区二区开放时间| 国产精品三级在线观看| 99久久综合国产精品| 亚洲激情在线激情| 亚洲va韩国va欧美va精品| 一区二区三区.www| 亚洲色图在线视频| 亚洲美腿欧美偷拍| 亚洲国产中文字幕在线视频综合 | 亚洲色图欧洲色图婷婷| 日韩一区二区在线观看| 色老汉av一区二区三区| 色噜噜狠狠一区二区三区果冻| 在线观看一区日韩| 国产一区视频导航| 日本vs亚洲vs韩国一区三区二区 | 欧美疯狂做受xxxx富婆| 日韩av电影免费观看高清完整版| 无吗不卡中文字幕| 久久国产精品99久久久久久老狼 | 日韩视频一区二区在线观看| 99精品国产99久久久久久白柏| 国产午夜精品美女毛片视频| 亚洲欧美成aⅴ人在线观看 | **欧美大码日韩| 国产亚洲欧美一区在线观看| 欧美伦理影视网| 精品福利一区二区三区免费视频| 91久久一区二区| 欧美电影免费观看高清完整版在线 | 毛片一区二区三区| 91麻豆精品国产综合久久久久久| 色一情一乱一乱一91av| 在线精品视频免费播放| 美女mm1313爽爽久久久蜜臀| 91精品在线免费观看| 欧美日韩精品专区| 欧美日韩一级大片网址| 在线这里只有精品| 在线观看亚洲专区| 国产欧美久久久精品影院| 亚洲色图色小说| 中文字幕亚洲区| 欧美成人video| 欧美激情资源网| 欧美国产日本韩| 亚洲欧美影音先锋| 日韩理论片一区二区| 亚洲第一福利视频在线| 久久爱www久久做| 日韩一区二区在线播放| 精品国产乱码久久久久久闺蜜| 精品美女一区二区三区| 国产欧美精品一区| 欧美日韩高清一区| 精品国产一区二区三区不卡| 国产色产综合产在线视频| 国产精品久久久久精k8| 日韩女同互慰一区二区| 中文字幕日韩精品一区| 日韩精品免费专区| 久久精品夜夜夜夜久久|