日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NumPy 笔记(超级全!收藏√)

發布時間:2023/12/15 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NumPy 笔记(超级全!收藏√) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • NumPy 教程
  • NumPy Ndarray 對象
  • NumPy 數據類型
    • 數據類型對象 (dtype)
  • NumPy 讀取數據
  • NumPy 數組屬性
      • ndarray.ndim
      • ndarray.shape
      • ndarray.itemsize
      • ndarray.flags
  • NumPy 創建數組
      • numpy.empty
      • numpy.zeros
      • numpy.ones
  • NumPy 從已有的數組創建數組
      • numpy.asarray
      • numpy.frombuffer
      • numpy.fromiter
  • NumPy 從數值范圍創建數組
      • numpy.arange
      • numpy.linspace
      • numpy.logspace
  • NumPy 切片和索引
  • NumPy 高級索引
      • 布爾索引
      • 花式索引
  • NumPy 廣播(Broadcast)
      • 廣播的規則:
  • NumPy 迭代數組
      • 控制遍歷順序
      • 修改數組中元素的值
      • 使用外部循環
      • 廣播迭代
    • 修改數組形狀
      • numpy.reshape
      • numpy.ndarray.flat
      • numpy.ndarray.flatten
      • numpy.ravel
    • 翻轉數組
      • numpy.transpose
      • numpy.rollaxis
      • numpy.swapaxes
    • 修改數組維度
      • numpy.broadcast
      • numpy.broadcast_to
      • numpy.expand_dims
      • numpy.squeeze
    • 連接數組
      • numpy.concatenate
      • numpy.stack
      • numpy.hstack
      • numpy.vstack
    • 分割數組
      • numpy.split
      • numpy.hsplit
      • numpy.vsplit
    • 數組元素的添加與刪除
      • numpy.resize
      • numpy.append
      • numpy.insert
      • numpy.delete
      • numpy.unique
  • NumPy 位運算
      • bitwise_and
      • bitwise_or
      • invert
      • left_shift
      • right_shift
  • NumPy 字符串函數
      • numpy.char.add()
      • numpy.char.multiply()
      • numpy.char.center()
      • numpy.char.capitalize()
      • numpy.char.title()
      • numpy.char.lower()
      • numpy.char.upper()
      • numpy.char.split()
      • numpy.char.splitlines()
      • numpy.char.strip()
      • numpy.char.join()
      • numpy.char.replace()
      • numpy.char.encode()
      • numpy.char.decode()
  • NumPy 數學函數
      • 三角函數
      • 舍入函數
      • numpy.floor()
      • numpy.ceil()
  • NumPy 算術函數
      • numpy.reciprocal()
      • numpy.power()
      • numpy.mod()
  • NumPy 統計函數
      • numpy.amin() 和 numpy.amax()
      • numpy.ptp()
      • numpy.percentile()
      • numpy.median()
      • numpy.mean()
      • numpy.average()
      • 標準差
      • 方差
  • NumPy 排序、條件刷選函數
      • numpy.sort()
      • numpy.argsort()
      • numpy.lexsort()
      • msort、sort_complex、partition、argpartition
      • numpy.argmax() 和 numpy.argmin()
      • numpy.nonzero()
      • numpy.where()
      • numpy.extract()
  • NumPy 字節交換
      • numpy.ndarray.byteswap()
  • NumPy 副本和視圖
      • 無復制
      • 視圖或淺拷貝
      • 副本或深拷貝
    • Python append() 與深拷貝、淺拷貝
      • 深淺拷貝
  • NumPy 矩陣庫(Matrix)
      • matlib.empty()
      • numpy.matlib.zeros()
      • numpy.matlib.ones()
      • numpy.matlib.eye()
      • numpy.matlib.identity()
      • numpy.matlib.rand()
  • NumPy 線性代數
      • numpy.dot()
      • numpy.vdot()
      • numpy.inner()
      • numpy.matmul
      • numpy.linalg.det()
      • numpy.linalg.solve()
      • numpy.linalg.inv()
  • NumPy IO
      • numpy.save()
      • numpy.savez
      • numpy.savetxt()

NumPy 教程

NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。

NumPy 的前身 Numeric 最早是由 Jim Hugunin 與其它協作者共同開發,2005 年,Travis Oliphant 在 Numeric 中結合了另一個同性質的程序庫 Numarray 的特色,并加入了其它擴展而開發了 NumPy。NumPy 為開放源代碼并且由許多協作者共同維護開發。

NumPy 是一個運行速度非常快的數學庫,主要用于數組計算,包含:

  • 一個強大的N維數組對象 ndarray
  • 廣播功能函數
  • 整合 C/C++/Fortran 代碼的工具
  • 線性代數、傅里葉變換、隨機數生成等功能

NumPy Ndarray 對象

NumPy 最重要的一個特點是其 N 維數組對象 ndarray,它是一系列同類型數據的集合,以 0 下標為開始進行集合中元素的索引。

ndarray 對象是用于存放同類型元素的多維數組。

ndarray 中的每個元素在內存中都有相同存儲大小的區域。

ndarray 內部由以下內容組成:

  • 一個指向數據(內存或內存映射文件中的一塊數據)的指針。
  • 數據類型或 dtype,描述在數組中的固定大小值的格子。
  • 一個表示數組形狀(shape)的元組,表示各維度大小的元組。
  • 一個跨度元組(stride),其中的整數指的是為了前進到當前維度下一個元素需要"跨過"的字節數。

ndarray 的內部結構:

跨度可以是負數,這樣會使數組在內存中后向移動,切片中 obj[::-1]obj[:,::-1] 就是如此。

創建一個 ndarray 只需調用 NumPy 的 array 函數即可:

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

參數說明:

名稱描述
object數組或嵌套的數列
dtype數組元素的數據類型,可選
copy對象是否需要復制,可選
order創建數組的樣式,C為行方向,F為列方向,A為任意方向(默認)
subok默認返回一個與基類類型一致的數組
ndmin指定生成數組的最小維度

ndarray 對象由計算機內存的連續一維部分組成,并結合索引模式,將每個元素映射到內存塊中的一個位置。內存塊以行順序(C樣式)或列順序(FORTRAN或MatLab風格,即前述的F樣式)來保存元素

NumPy 數據類型

numpy 支持的數據類型比 Python 內置的類型要多很多,基本上可以和 C 語言的數據類型對應上,其中部分類型對應為 Python 內置的類型。下表列舉了常用 NumPy 基本類型。

名稱描述
bool_布爾型數據類型(True 或者 False)
int_默認的整數類型(類似于 C 語言中的 long,int32 或 int64)
intc與 C 的 int 類型一樣,一般是 int32 或 int 64
intp用于索引的整數類型(類似于 C 的 ssize_t,一般情況下仍然是 int32 或 int64)
int8字節(-128 to 127)
int16整數(-32768 to 32767)
int32整數(-2147483648 to 2147483647)
int64整數(-9223372036854775808 to 9223372036854775807)
uint8無符號整數(0 to 255)
uint16無符號整數(0 to 65535)
uint32無符號整數(0 to 4294967295)
uint64無符號整數(0 to 18446744073709551615)
float_float64 類型的簡寫
float16半精度浮點數,包括:1 個符號位,5 個指數位,10 個尾數位
float32單精度浮點數,包括:1 個符號位,8 個指數位,23 個尾數位
float64雙精度浮點數,包括:1 個符號位,11 個指數位,52 個尾數位
complex_complex128 類型的簡寫,即 128 位復數
complex64復數,表示雙 32 位浮點數(實數部分和虛數部分)
complex128復數,表示雙 64 位浮點數(實數部分和虛數部分)

numpy 的數值類型實際上是 dtype 對象的實例,并對應唯一的字符,包括 np.bool_,np.int32,np.float32,等等。

數據類型對象 (dtype)

數據類型對象是用來描述與數組對應的內存區域如何使用,這依賴如下幾個方面:

  • 數據的類型(整數,浮點數或者 Python 對象)
  • 數據的大小(例如, 整數使用多少個字節存儲)
  • 數據的字節順序(小端法或大端法)
  • 在結構化類型的情況下,字段的名稱、每個字段的數據類型和每個字段所取的內存塊的部分
  • 如果數據類型是子數組,它的形狀和數據類型

字節順序是通過對數據類型預先設定"<“或”>“來決定的。”<“意味著小端法(最小值存儲在最小的地址,即低位組放在最前面)。”>"意味著大端法(最重要的字節存儲在最小的地址,即高位組放在最前面)。

dtype 對象是使用以下語法構造的:

numpy.dtype(object, align, copy)
  • object - 要轉換為的數據類型對象
  • align - 如果為 true,填充字段使其類似 C 的結構體。
  • copy - 復制 dtype 對象 ,如果為 false,則是對內置數據類型對象的引用

每個內建類型都有一個唯一定義它的字符代碼,如下:

字符對應類型
b布爾型
i(有符號) 整型
u無符號整型 integer
f浮點型
c復數浮點型
mtimedelta(時間間隔)
Mdatetime(日期時間)
O(Python) 對象
S, a(byte-)字符串
UUnicode
V原始數據 (void)

NumPy 讀取數據

CSV:Comma-Separated Value,逗號分隔值文件

顯示:表格狀態

源文件:換行和逗號分隔行列的格式化文本,每一行的數據表示一條記錄

由于csv便于展示,讀取和寫入,所以很多地方也是用csv的格式存儲和傳輸中小型的數據,為了方便教學,我們會經常操作csv格式的文件,但是操作數據庫中的數據也是很容易的實現的

np.loadtxt(fname,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False) 參數解釋
frame文件、字符串或產生器,可以是,gz或bz2壓縮文件
dtype數據類型,可選,CSV的字符串以什么數據類型讀入數據,默認 np.float
delimiter分隔字符串,默認是任何空格,改為 逗號
skiprows跳過前x行,一般跳過第一行表頭
usecols讀取指定的列,索引,元組類型
unpack如果True,讀入屬性將分別寫入不同數組變量,Flase讀入數據只能寫入一個數組變量,默認Flase

NumPy 數組屬性

NumPy 數組的維數稱為秩(rank),秩就是軸的數量,即數組的維度,一維數組的秩為 1,二維數組的秩為 2,以此類推。

在 NumPy中,每一個線性的數組稱為是一個軸(axis),也就是維度(dimensions)。比如說,二維數組相當于是兩個一維數組,其中第一個一維數組中每個元素又是一個一維數組。所以一維數組就是 NumPy 中的軸(axis),第一個軸相當于是底層數組,第二個軸是底層數組里的數組。而軸的數量——秩,就是數組的維數。

很多時候可以聲明 axis。axis=0,表示沿著第 0 軸進行操作,即對每一列進行操作;axis=1,表示沿著第1軸進行操作,即對每一行進行操作。

NumPy 的數組中比較重要 ndarray 對象屬性有:

屬性說明
ndarray.ndim秩,即軸的數量或維度的數量
ndarray.shape數組的維度,對于矩陣,n 行 m 列
ndarray.size數組元素的總個數,相當于 .shape 中 n*m 的值
ndarray.dtypendarray 對象的元素類型
ndarray.itemsizendarray 對象中每個元素的大小,以字節為單位
ndarray.flagsndarray 對象的內存信息
ndarray.realndarray元素的實部
ndarray.imagndarray 元素的虛部
ndarray.data包含實際數組元素的緩沖區,由于一般通過數組的索引獲取元素,所以通常不需要使用這個屬性。

ndarray.ndim

ndarray.ndim 用于返回數組的維數,等于秩。

ndarray.shape

ndarray.shape 表示數組的維度,返回一個元組,這個元組的長度就是維度的數目,即 ndim 屬性(秩)。比如,一個二維數組,其維度表示"行數"和"列數"。

ndarray.shape 也可以用于調整數組大小。

NumPy 也提供了 reshape 函數來調整數組大小。

ndarray.itemsize

ndarray.itemsize 以字節的形式返回數組中每一個元素的大小。

例如,一個元素類型為 float64 的數組 itemsiz 屬性值為 8(float64 占用 64 個 bits,每個字節長度為 8,所以 64/8,占用 8 個字節),又如,一個元素類型為 complex32 的數組 item 屬性為 4(32/8)。

ndarray.flags

ndarray.flags 返回 ndarray 對象的內存信息,包含以下屬性:

屬性描述
C_CONTIGUOUS ?數據是在一個單一的C風格的連續段中
F_CONTIGUOUS (F)數據是在一個單一的Fortran風格的連續段中
OWNDATA (O)數組擁有它所使用的內存或從另一個對象中借用它
WRITEABLE (W)數據區域可以被寫入,將該值設置為 False,則數據為只讀
ALIGNED (A)數據和所有元素都適當地對齊到硬件上
UPDATEIFCOPY (U)這個數組是其它數組的一個副本,當這個數組被釋放時,原數組的內容將被更新

NumPy 創建數組

ndarray 數組除了可以使用底層 ndarray 構造器來創建外,也可以通過以下幾種方式來創建。

numpy.empty

numpy.empty 方法用來創建一個指定形狀(shape)、數據類型(dtype)且未初始化的數組:

numpy.empty(shape, dtype = float, order = 'C')

參數說明:

參數描述
shape數組形狀
dtype數據類型,可選
order有"C"和"F"兩個選項,分別代表,行優先和列優先,在計算機內存中的存儲元素的順序。

注意 ? 數組元素為隨機值,因為它們未初始化。

numpy.zeros

創建指定大小的數組,數組元素以 0 來填充:

numpy.zeros(shape, dtype = float, order = 'C')

參數說明:

參數描述
shape數組形狀
dtype數據類型,可選
order‘C’ 用于 C 的行數組,或者 ‘F’ 用于 FORTRAN 的列數組

numpy.ones

創建指定形狀的數組,數組元素以 1 來填充:

numpy.ones(shape, dtype = None, order = 'C')

參數說明:

參數描述
shape數組形狀
dtype數據類型,可選
order‘C’ 用于 C 的行數組,或者 ‘F’ 用于 FORTRAN 的列數組

NumPy 從已有的數組創建數組

numpy.asarray

numpy.asarray 類似 numpy.array,但 numpy.asarray 參數只有三個,比 numpy.array 少兩個。

numpy.asarray(a, dtype = None, order = None)

參數說明:

參數描述
a任意形式的輸入參數,可以是,列表, 列表的元組, 元組, 元組的元組, 元組的列表,多維數組
dtype數據類型,可選
order可選,有"C"和"F"兩個選項,分別代表,行優先和列優先,在計算機內存中的存儲元素的順序。

numpy.frombuffer

numpy.frombuffer 用于實現動態數組。

numpy.frombuffer 接受 buffer 輸入參數,以流的形式讀入轉化成 ndarray 對象。

numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)

注意:buffer 是字符串的時候,Python3 默認 str 是 Unicode 類型,所以要轉成 bytestring 在原 str 前加上 b。

參數說明:

參數描述
buffer可以是任意對象,會以流的形式讀入。
dtype返回數組的數據類型,可選
count讀取的數據數量,默認為-1,讀取所有數據。
offset讀取的起始位置,默認為0。

numpy.fromiter

numpy.fromiter 方法從可迭代對象中建立 ndarray 對象,返回一維數組。

numpy.fromiter(iterable, dtype, count=-1) 參數描述
iterable可迭代對象
dtype返回數組的數據類型
count讀取的數據數量,默認為-1,讀取所有數據

NumPy 從數值范圍創建數組

numpy.arange

numpy 包中的使用 arange 函數創建數值范圍并返回 ndarray 對象,函數格式如下:

numpy.arange(start, stop, step, dtype)

根據 start 與 stop 指定的范圍以及 step 設定的步長,生成一個 ndarray。

參數說明:

參數描述
start起始值,默認為0
stop終止值(不包含)
step步長,默認為1
dtype返回ndarray的數據類型,如果沒有提供,則會使用輸入數據的類型。

numpy.linspace

numpy.linspace 函數用于創建一個一維數組,數組是一個等差數列構成的,格式如下:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

參數說明:

參數描述
start序列的起始值
stop序列的終止值,如果endpoint為true,該值包含于數列中
num要生成的等步長的樣本數量,默認為50
endpoint該值為 true 時,數列中中包含stop值,反之不包含,默認是True。
retstep如果為 True 時,生成的數組中會顯示間距,反之不顯示。
dtypendarray 的數據類型

numpy.logspace

numpy.logspace 函數用于創建一個于等比數列。格式如下:

np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

base 參數意思是取對數的時候 log 的下標。

參數描述
start序列的起始值為:base ** start
stop序列的終止值為:base ** stop。如果endpoint為true,該值包含于數列中
num要生成的等步長的樣本數量,默認為50
endpoint該值為 true 時,數列中中包含stop值,反之不包含,默認是True。
base對數 log 的底數。
dtypendarray 的數據類型

NumPy 切片和索引

ndarray對象的內容可以通過索引或切片來訪問和修改,與 Python 中 list 的切片操作一樣。

ndarray 數組可以基于 0 - n 的下標進行索引,切片對象可以通過內置的 slice 函數,并設置 start, stop 及 step 參數進行,從原數組中切割出一個新數組。通過冒號分隔切片參數 start:stop:step 來進行切片操作。

冒號 : 的解釋:如果只放置一個參數,如 [2],將返回與該索引相對應的單個元素。如果為 [2:],表示從該索引開始以后的所有項都將被提取。如果使用了兩個參數,如 [2:7],那么則提取兩個索引(不包括停止索引)之間的項。

切片還可以包括省略號 ,來使選擇元組的長度與數組的維度相同。 如果在行位置使用省略號,它將返回包含行中元素的 ndarray。

NumPy 高級索引

NumPy 比一般的 Python 序列提供更多的索引方式。除了之前看到的用整數和切片的索引外,數組可以由整數數組索引布爾索引花式索引

布爾索引

我們可以通過一個布爾數組來索引目標數組。

布爾索引通過布爾運算(如:比較運算符)來獲取符合指定條件的元素的數組。

~(取補運算符)來過濾 NaN

花式索引

花式索引指的是利用整數數組進行索引。

花式索引根據索引數組的值作為目標數組的某個軸的下標來取值。對于使用一維整型數組作為索引,如果目標是一維數組,那么索引的結果就是對應位置的元素;如果目標是二維數組,那么就是對應下標的行。

花式索引跟切片不一樣,它總是將數據復制到新數組中。

  • 傳入順序索引數組

    實例

    import numpy as npx=np.arange(32).reshape((8,4)) print (x[[4,2,1,7]])

    輸出結果為:

    [[16 17 18 19][ 8 9 10 11][ 4 5 6 7][28 29 30 31]]
  • 傳入倒序索引數組

    實例

    import numpy as npx=np.arange(32).reshape((8,4)) print (x[[-4,-2,-1,-7]])

    輸出結果為:

    [[16 17 18 19][24 25 26 27][28 29 30 31][ 4 5 6 7]]
  • 傳入多個索引數組(要使用np.ix_)

    實例

    import numpy as npx=np.arange(32).reshape((8,4)) print (x[np.ix_([1,5,7,2],[0,3,1,2])])

    輸出結果為:

    [[ 4 7 5 6][20 23 21 22][28 31 29 30][ 8 11 9 10]]
  • NumPy 廣播(Broadcast)

    廣播(Broadcast)是 numpy 對不同形狀(shape)的數組進行數值計算的方式, 對數組的算術運算通常在相應的元素上進行。

    如果兩個數組 a 和 b 形狀相同,即滿足 a.shape == b.shape,那么 a*b 的結果就是 a 與 b 數組對應位相乘。這要求維數相同,且各維度的長度相同。

    當運算中的 2 個數組的形狀不同時,numpy 將自動觸發廣播機制。如:

    實例

    import numpy as npa = np.array([[ 0, 0, 0],[10,10,10],[20,20,20],[30,30,30]]) b = np.array([1,2,3]) print(a + b)

    輸出結果為:

    [[ 1 2 3][11 12 13][21 22 23][31 32 33]]

    下面的圖片展示了數組 b 如何通過廣播來與數組 a 兼容。

    4x3 的二維數組與長為 3 的一維數組相加,等效于把數組 b 在二維上重復 4 次再運算

    廣播的規則:

    • 讓所有輸入數組都向其中形狀最長的數組看齊,形狀中不足的部分都通過在前面加 1 補齊。
    • 輸出數組的形狀是輸入數組形狀的各個維度上的最大值。
    • 如果輸入數組的某個維度和輸出數組的對應維度的長度相同或者其長度為 1 時,這個數組能夠用來計算,否則出錯。
    • 當輸入數組的某個維度的長度為 1 時,沿著此維度運算時都用此維度上的第一組值。

    **簡單理解:**對兩個數組,分別比較他們的每一個維度(若其中一個數組沒有當前維度則忽略),滿足:

    • 數組擁有相同形狀。
    • 當前維度的值相等。
    • 當前維度的值有一個是 1。

    若條件不滿足,拋出 “ValueError: frames are not aligned” 異常。

    NumPy 迭代數組

    NumPy 迭代器對象 numpy.nditer 提供了一種靈活訪問一個或者多個數組元素的方式。

    迭代器最基本的任務的可以完成對數組元素的訪問。

    控制遍歷順序

    • for x in np.nditer(a, order='F'):Fortran order,即是列序優先;
    • for x in np.nditer(a.T, order='C'):C order,即是行序優先;

    可以通過顯式設置,來強制 nditer 對象使用某種順序。

    修改數組中元素的值

    nditer 對象有另一個可選參數 op_flags。 默認情況下,nditer 將視待迭代遍歷的數組為只讀對象(read-only),為了在遍歷數組的同時,實現對數組元素值得修改,必須指定 read-write 或者 write-only 的模式。

    使用外部循環

    nditer類的構造器擁有flags參數,它可以接受下列值:

    參數描述
    c_index可以跟蹤 C 順序的索引
    f_index可以跟蹤 Fortran 順序的索引
    multi-index每次迭代可以跟蹤一種索引類型
    external_loop給出的值是具有多個值的一維數組,而不是零維數組

    廣播迭代

    如果兩個數組是可廣播的,nditer 組合對象能夠同時迭代它們。 假設數組 a 的維度為 3X4,數組 b 的維度為 1X4 ,則使用以下迭代器(數組 b 被廣播到 a 的大小)。

    Numpy 數組操作

    Numpy 中包含了一些函數用于處理數組,大概可分為以下幾類:

    • 修改數組形狀
    • 翻轉數組
    • 修改數組維度
    • 連接數組
    • 分割數組
    • 數組元素的添加與刪除

    修改數組形狀

    函數描述
    reshape不改變數據的條件下修改形狀
    flat數組元素迭代器
    flatten返回一份數組拷貝,對拷貝所做的修改不會影響原始數組
    ravel返回展開數組

    numpy.reshape

    numpy.reshape 函數可以在不改變數據的條件下修改形狀,格式如下: numpy.reshape(arr, newshape, order=‘C’)

    • arr:要修改形狀的數組
    • newshape:整數或者整數數組,新的形狀應當兼容原有形狀
    • order:‘C’ – 按行,‘F’ – 按列,‘A’ – 原順序,‘k’ – 元素在內存中的出現順序。

    numpy.ndarray.flat

    numpy.ndarray.flat 是一個數組元素迭代器。

    numpy.ndarray.flatten

    numpy.ndarray.flatten 返回一份數組拷貝,對拷貝所做的修改不會影響原始數組,格式如下:

    ndarray.flatten(order='C')

    參數說明:

    • order:‘C’ – 按行,‘F’ – 按列,‘A’ – 原順序,‘K’ – 元素在內存中的出現順序。

    numpy.ravel

    numpy.ravel() 展平的數組元素,順序通常是"C風格",返回的是數組視圖(view,有點類似 C/C++引用reference的意味),修改會影響原始數組。

    該函數接收兩個參數:

    numpy.ravel(a, order='C')

    參數說明:

    • order:‘C’ – 按行,‘F’ – 按列,‘A’ – 原順序,‘K’ – 元素在內存中的出現順序。

    翻轉數組

    函數描述
    transpose對換數組的維度
    ndarray.T和 self.transpose() 相同
    rollaxis向后滾動指定的軸
    swapaxes對換數組的兩個軸

    numpy.transpose

    numpy.transpose 函數用于對換數組的維度,格式如下:

    numpy.transpose(arr, axes)

    參數說明:

    • arr:要操作的數組
    • axes:整數列表,對應維度,通常所有維度都會對換。

    numpy.rollaxis

    numpy.rollaxis 函數向后滾動特定的軸到一個特定位置,格式如下:

    numpy.rollaxis(arr, axis, start)

    參數說明:

    • arr:數組
    • axis:要向后滾動的軸,其它軸的相對位置不會改變
    • start:默認為零,表示完整的滾動。會滾動到特定位置。

    numpy.swapaxes

    numpy.swapaxes 函數用于交換數組的兩個軸,格式如下:

    numpy.swapaxes(arr, axis1, axis2)
    • arr:輸入的數組
    • axis1:對應第一個軸的整數
    • axis2:對應第二個軸的整數

    修改數組維度

    維度描述
    broadcast產生模仿廣播的對象
    broadcast_to將數組廣播到新形狀
    expand_dims擴展數組的形狀
    squeeze從數組的形狀中刪除一維條目

    numpy.broadcast

    numpy.broadcast 用于模仿廣播的對象,它返回一個對象,該對象封裝了將一個數組廣播到另一個數組的結果。

    numpy.broadcast_to

    numpy.broadcast_to 函數將數組廣播到新形狀。它在原始數組上返回只讀視圖。 它通常不連續。 如果新形狀不符合 NumPy 的廣播規則,該函數可能會拋出ValueError。

    numpy.broadcast_to(array, shape, subok)

    numpy.expand_dims

    numpy.expand_dims 函數通過在指定位置插入新的軸來擴展數組形狀,函數格式如下:

    numpy.expand_dims(arr, axis)

    參數說明:

    • arr:輸入數組
    • axis:新軸插入的位置

    numpy.squeeze

    numpy.squeeze 函數從給定數組的形狀中刪除一維的條目,函數格式如下:

    numpy.squeeze(arr, axis)

    參數說明:

    • arr:輸入數組
    • axis:整數或整數元組,用于選擇形狀中一維條目的子集

    連接數組

    函數描述
    concatenate連接沿現有軸的數組序列
    stack沿著新的軸加入一系列數組。
    hstack水平堆疊序列中的數組(列方向)
    vstack豎直堆疊序列中的數組(行方向)

    numpy.concatenate

    numpy.concatenate 函數用于沿指定軸連接相同形狀的兩個或多個數組,格式如下:

    numpy.concatenate((a1, a2, ...), axis)

    參數說明:

    • a1, a2, ...:相同類型的數組
    • axis:沿著它連接數組的軸,默認為 0

    numpy.stack

    numpy.stack 函數用于沿新軸連接數組序列,格式如下:

    numpy.stack(arrays, axis)

    參數說明:

    • arrays相同形狀的數組序列
    • axis:返回數組中的軸,輸入數組沿著它來堆疊

    numpy.hstack

    numpy.hstack 是 numpy.stack 函數的變體,它通過水平堆疊來生成數組。

    numpy.vstack

    numpy.vstack 是 numpy.stack 函數的變體,它通過垂直堆疊來生成數組。

    分割數組

    函數數組及操作
    split將一個數組分割為多個子數組
    hsplit將一個數組水平分割為多個子數組(按列)
    vsplit將一個數組垂直分割為多個子數組(按行)

    numpy.split

    numpy.split 函數沿特定的軸將數組分割為子數組,格式如下:

    numpy.split(ary, indices_or_sections, axis)

    參數說明:

    • ary:被分割的數組
    • indices_or_sections:果是一個整數,就用該數平均切分,如果是一個數組,為沿軸切分的位置(左開右閉)
    • axis:沿著哪個維度進行切向,默認為0,橫向切分。為1時,縱向切分

    numpy.hsplit

    numpy.hsplit 函數用于水平分割數組,通過指定要返回的相同形狀的數組數量來拆分原數組。

    numpy.vsplit

    numpy.vsplit 沿著垂直軸分割,其分割方式與hsplit用法相同。

    數組元素的添加與刪除

    函數元素及描述
    resize返回指定形狀的新數組
    append將值添加到數組末尾
    insert沿指定軸將值插入到指定下標之前
    delete刪掉某個軸的子數組,并返回刪除后的新數組
    unique查找數組內的唯一元素

    numpy.resize

    numpy.resize 函數返回指定大小的新數組。

    如果新數組大小大于原始大小,則包含原始數組中的元素的副本。

    numpy.resize(arr, shape)

    參數說明:

    • arr:要修改大小的數組
    • shape:返回數組的新形狀

    numpy.append

    numpy.append 函數在數組的末尾添加值。 追加操作會分配整個數組,并把原來的數組復制到新數組中。 此外,輸入數組的維度必須匹配否則將生成ValueError。

    append 函數返回的始終是一個一維數組。

    numpy.append(arr, values, axis=None)

    參數說明:

    • arr:輸入數組
    • values:要向arr添加的值,需要和arr形狀相同(除了要添加的軸)
    • axis:默認為 None。當axis無定義時,是橫向加成,返回總是為一維數組!當axis有定義的時候,分別為0和1的時候。當axis有定義的時候,分別為0和1的時候(列數要相同)。當axis為1時,數組是加在右邊(行數要相同)。

    numpy.insert

    numpy.insert 函數在給定索引之前,沿給定軸在輸入數組中插入值。

    如果值的類型轉換為要插入,則它與輸入數組不同。 插入沒有原地的,函數會返回一個新數組。 此外,如果未提供軸,則輸入數組會被展開。

    numpy.insert(arr, obj, values, axis)

    參數說明:

    • arr:輸入數組
    • obj:在其之前插入值的索引
    • values:要插入的值
    • axis:沿著它插入的軸,如果未提供,則輸入數組會被展開

    numpy.delete

    numpy.delete 函數返回從輸入數組中刪除指定子數組的新數組。 與 insert() 函數的情況一樣,如果未提供軸參數,則輸入數組將展開。

    Numpy.delete(arr, obj, axis)

    參數說明:

    • arr:輸入數組
    • obj:可以被切片,整數或者整數數組,表明要從輸入數組刪除的子數組
    • axis:沿著它刪除給定子數組的軸,如果未提供,則輸入數組會被展開

    numpy.unique

    numpy.unique 函數用于去除數組中的重復元素。

    numpy.unique(arr, return_index, return_inverse, return_counts)
    • arr:輸入數組,如果不是一維數組則會展開
    • return_index:如果為true,返回新列表元素在舊列表中的位置(下標),并以列表形式儲
    • return_inverse:如果為true,返回舊列表元素在新列表中的位置(下標),并以列表形式儲
    • return_counts:如果為true,返回去重數組中的元素在原數組中的出現次數

    NumPy 位運算

    NumPy “bitwise_” 開頭的函數是位運算函數。

    NumPy 位運算包括以下幾個函數:

    函數描述
    bitwise_and對數組元素執行位與操作
    bitwise_or對數組元素執行位或操作
    invert按位取反
    left_shift向左移動二進制表示的位
    right_shift向右移動二進制表示的位

    **注:**也可以使用 “&”、 “~”、 “|” 和 “^” 等操作符進行計算。

    bitwise_and

    bitwise_and() 函數對數組中整數的二進制形式執行位與運算。

    位與操作運算規律如下:

    ABAND
    111
    100
    010
    000

    bitwise_or

    bitwise_or()函數對數組中整數的二進制形式執行位或運算。

    位或操作運算規律如下:

    ABOR
    111
    101
    011
    000

    invert

    invert() 函數對數組中整數進行位取反運算,即 0 變成 1,1 變成 0。

    對于有符號整數,取該二進制數的補碼,然后 +1。二進制數,最高位為0表示正數,最高位為 1 表示負數。

    看看 ~1 的計算步驟:

    • 1(這里叫:原碼)轉二進制 = 00000001

    • 按位取反 = 11111110

    • 發現符號位(即最高位)為1(表示負數),將除符號位之外的其他數字取反 = 10000001

    • 末位加1取其補碼 = 10000010

    • 轉換回十進制 = -2

    • 表達式二進制值(2 的補數)十進制值
      500000000 00000000 00000000 00000105
      ~511111111 11111111 11111111 11111010-6

    left_shift

    left_shift() 函數將數組元素的二進制形式向左移動到指定位置,右側附加相等數量的 0。

    right_shift

    right_shift() 函數將數組元素的二進制形式向右移動到指定位置,左側附加相等數量的 0。

    NumPy 字符串函數

    以下函數用于對 dtype 為 numpy.string_ 或 numpy.unicode_ 的數組執行向量化字符串操作。 它們基于 Python 內置庫中的標準字符串函數。

    這些函數在字符數組類(numpy.char)中定義。

    函數描述
    add()對兩個數組的逐個字符串元素進行連接
    multiply()返回按元素多重連接后的字符串
    center()居中字符串
    capitalize()將字符串第一個字母轉換為大寫
    title()將字符串的每個單詞的第一個字母轉換為大寫
    lower()數組元素轉換為小寫
    upper()數組元素轉換為大寫
    split()指定分隔符對字符串進行分割,并返回數組列表
    splitlines()返回元素中的行列表,以換行符分割
    strip()移除元素開頭或者結尾處的特定字符
    join()通過指定分隔符來連接數組中的元素
    replace()使用新字符串替換字符串中的所有子字符串
    decode()數組元素依次調用str.decode
    encode()數組元素依次調用str.encode

    numpy.char.add()

    numpy.char.add() 函數依次對兩個數組的元素進行字符串連接。

    numpy.char.multiply()

    numpy.char.multiply() 函數執行多重連接。

    numpy.char.center()

    numpy.char.center() 函數用于將字符串居中,并使用指定字符在左側和右側進行填充。

    numpy.char.capitalize()

    numpy.char.capitalize() 函數將字符串的第一個字母轉換為大寫。

    numpy.char.title()

    numpy.char.title() 函數將字符串的每個單詞的第一個字母轉換為大寫。

    numpy.char.lower()

    numpy.char.lower() 函數對數組的每個元素轉換為小寫。它對每個元素調用 str.lower。

    numpy.char.upper()

    numpy.char.upper() 函數對數組的每個元素轉換為大寫。它對每個元素調用 str.upper。

    numpy.char.split()

    numpy.char.split() 通過指定分隔符對字符串進行分割,并返回數組。默認情況下,分隔符為空格。

    numpy.char.splitlines()

    numpy.char.splitlines() 函數以換行符作為分隔符來分割字符串,并返回數組。

    \n,\r,\r\n 都可用作換行符。

    numpy.char.strip()

    numpy.char.strip() 函數用于移除開頭或結尾處的特定字符。

    numpy.char.join()

    numpy.char.join() 函數通過指定分隔符來連接數組中的元素或字符串。

    numpy.char.replace()

    numpy.char.replace() 函數使用新字符串替換字符串中的所有子字符串。

    numpy.char.encode()

    numpy.char.encode() 函數對數組中的每個元素調用 str.encode 函數。 默認編碼是 utf-8,可以使用標準 Python 庫中的編解碼器。

    numpy.char.decode()

    numpy.char.decode() 函數對編碼的元素進行 str.decode() 解碼。

    NumPy 數學函數

    NumPy 包含大量的各種數學運算的函數,包括三角函數,算術運算的函數,復數處理函數等。

    三角函數

    NumPy 提供了標準的三角函數:sin()、cos()、tan()。

    arcsin,arccos,和 arctan 函數返回給定角度的 sin,cos 和 tan 的反三角函數。

    這些函數的結果可以通過 numpy.degrees() 函數將弧度轉換為角度。

    舍入函數

    numpy.around() 函數返回指定數字的四舍五入值。

    numpy.around(a,decimals)

    參數說明:

    • a: 數組
    • decimals: 舍入的小數位數。 默認值為0。 如果為負,整數將四舍五入到小數點左側的位置

    numpy.floor()

    numpy.floor() 返回小于或者等于指定表達式的最大整數,即向下取整。

    numpy.ceil()

    numpy.ceil() 返回大于或者等于指定表達式的最小整數,即向上取整。

    NumPy 算術函數

    NumPy 算術函數包含簡單的加減乘除: add()subtract()multiply()divide()

    需要注意的是數組必須具有相同的形狀或符合數組廣播規則。

    此外 Numpy 也包含了其他重要的算術函數。

    numpy.reciprocal()

    numpy.reciprocal() 函數返回參數逐元素的倒數。如 1/4 倒數為 4/1

    numpy.power()

    numpy.power() 函數將第一個輸入數組中的元素作為底數,計算它與第二個輸入數組中相應元素的冪。

    numpy.mod()

    numpy.mod() 計算輸入數組中相應元素的相除后的余數。 函數 numpy.remainder() 也產生相同的結果。

    NumPy 統計函數

    NumPy 提供了很多統計函數,用于從數組中查找最小元素,最大元素,百分位標準差和方差等。 函數說明如下:

    numpy.amin() 和 numpy.amax()

    numpy.amin() 用于計算數組中的元素沿指定軸的最小值。

    numpy.amax() 用于計算數組中的元素沿指定軸的最大值。

    numpy.ptp()

    numpy.ptp()函數計算數組中元素最大值與最小值的差(最大值 - 最小值)。

    numpy.percentile()

    百分位數是統計中使用的度量,表示小于這個值的觀察值的百分比。 函數numpy.percentile()接受以下參數。

    numpy.percentile(a, q, axis)

    參數說明:

    • a: 輸入數組
    • q: 要計算的百分位數,在 0 ~ 100 之間
    • axis: 沿著它計算百分位數的軸

    首先明確百分位數:

    第 p 個百分位數是這樣一個值,它使得至少有 p% 的數據項小于或等于這個值,且至少有 (100-p)% 的數據項大于或等于這個值。

    舉個例子:高等院校的入學考試成績經常以百分位數的形式報告。比如,假設某個考生在入學考試中的語文部分的原始分數為 54 分。相對于參加同一考試的其他學生來說,他的成績如何并不容易知道。但是如果原始分數54分恰好對應的是第70百分位數,我們就能知道大約70%的學生的考分比他低,而約30%的學生考分比他高。這里的 p = 70。

    numpy.median()

    numpy.median() 函數用于計算數組 a 中元素的中位數(中值)

    numpy.mean()

    numpy.mean() 函數返回數組中元素的算術平均值。 如果提供了軸,則沿其計算。

    算術平均值是沿軸的元素的總和除以元素的數量。

    numpy.average()

    numpy.average() 函數根據在另一個數組中給出的各自的權重計算數組中元素的加權平均值。

    該函數可以接受一個軸參數。 如果沒有指定軸,則數組會被展開。

    加權平均值即將各數值乘以相應的權數,然后加總求和得到總體值,再除以總的單位數。

    考慮數組[1,2,3,4]和相應的權重[4,3,2,1],通過將相應元素的乘積相加,并將和除以權重的和,來計算加權平均值。

    加權平均值 = (1*4+2*3+3*2+4*1)/(4+3+2+1)

    標準差

    標準差是一組數據平均值分散程度的一種度量。

    標準差是方差的算術平方根。

    標準差公式如下:

    std = sqrt(mean((x - x.mean())**2))

    如果數組是 [1,2,3,4],則其平均值為 2.5。 因此,差的平方是 [2.25,0.25,0.25,2.25],并且其平均值的平方根除以 4,即 sqrt(5/4) ,結果為 1.1180339887498949。

    方差

    統計中的方差(樣本方差)是每個樣本值與全體樣本值的平均數之差的平方值的平均數,即 mean((x - x.mean())** 2)。

    換句話說,標準差是方差的平方根。

    NumPy 排序、條件刷選函數

    NumPy 提供了多種排序的方法。 這些排序函數實現不同的排序算法,每個排序算法的特征在于執行速度,最壞情況性能,所需的工作空間和算法的穩定性。 下表顯示了三種排序算法的比較。

    種類速度最壞情況工作空間穩定性
    'quicksort'(快速排序)1O(n^2)0
    'mergesort'(歸并排序)2O(n*log(n))~n/2
    'heapsort'(堆排序)3O(n*log(n))0

    numpy.sort()

    numpy.sort() 函數返回輸入數組的排序副本。函數格式如下:

    numpy.sort(a, axis, kind, order)

    參數說明:

    • a: 要排序的數組
    • axis: 沿著它排序數組的軸,如果沒有數組會被展開,沿著最后的軸排序, axis=0 按列排序,axis=1 按行排序
    • kind: 默認為’quicksort’(快速排序)
    • order: 如果數組包含字段,則是要排序的字段

    numpy.argsort()

    numpy.argsort() 函數返回的是數組值從小到大的索引值。

    numpy.lexsort()

    numpy.lexsort() 用于對多個序列進行排序。把它想象成對電子表格進行排序,每一列代表一個序列,排序時優先照顧靠后的列。

    這里舉一個應用場景:小升初考試,重點班錄取學生按照總成績錄取。在總成績相同時,數學成績高的優先錄取,在總成績和數學成績都相同時,按照英語成績錄取…… 這里,總成績排在電子表格的最后一列,數學成績在倒數第二列,英語成績在倒數第三列。

    msort、sort_complex、partition、argpartition

    函數描述
    msort(a)數組按第一個軸排序,返回排序后的數組副本。np.msort(a) 相等于 np.sort(a, axis=0)。
    sort_complex(a)對復數按照先實部后虛部的順序進行排序。
    partition(a, kth[, axis, kind, order])指定一個數,對數組進行分區
    argpartition(a, kth[, axis, kind, order])可以通過關鍵字 kind 指定算法沿著指定軸對數組進行分區

    numpy.argmax() 和 numpy.argmin()

    numpy.argmax() 和 numpy.argmin()函數分別沿給定軸返回最大和最小元素的索引。

    numpy.nonzero()

    numpy.nonzero() 函數返回輸入數組中非零元素的索引。

    numpy.where()

    numpy.where() 函數返回輸入數組中滿足給定條件的元素的索引。

    numpy.extract()

    numpy.extract() 函數根據某個條件從數組中抽取元素,返回滿條件的元素。

    NumPy 字節交換

    在幾乎所有的機器上,多字節對象都被存儲為連續的字節序列。字節順序,是跨越多字節的程序對象的存儲規則。

    • **大端模式:**指數據的高字節保存在內存的低地址中,而數據的低字節保存在內存的高地址中,這樣的存儲模式有點兒類似于把數據當作字符串順序處理:地址由小向大增加,而數據從高位往低位放;這和我們的閱讀習慣一致。
    • **小端模式:**指數據的高字節保存在內存的高地址中,而數據的低字節保存在內存的低地址中,這種存儲模式將地址的高低和數據位權有效地結合起來,高地址部分權值高,低地址部分權值低。

    例如在 C 語言中,一個類型為 int 的變量 x 地址為 0x100,那么其對應地址表達式&x的值為 0x100。且x的四個字節將被存儲在存儲器的 0x100, 0x101, 0x102, 0x103位置。

    numpy.ndarray.byteswap()

    numpy.ndarray.byteswap() 函數將 ndarray 中每個元素中的字節進行大小端轉換。

    NumPy 副本和視圖

    副本是一個數據的完整的拷貝,如果我們對副本進行修改,它不會影響到原始數據,物理內存不在同一位置。

    視圖是數據的一個別稱或引用,通過該別稱或引用亦便可訪問、操作原有數據,但原有數據不會產生拷貝。如果我們對視圖進行修改,它會影響到原始數據,物理內存在同一位置。

    視圖一般發生在:

    • 1、numpy 的切片操作返回原數據的視圖。
    • 2、調用 ndarray 的 view() 函數產生一個視圖。

    副本一般發生在:

    • Python 序列的切片操作,調用deepCopy()函數。
    • 調用 ndarray 的 copy() 函數產生一個副本。

    無復制

    簡單的賦值不會創建數組對象的副本。 相反,它使用原始數組的相同id()來訪問它。 id()返回 Python 對象的通用標識符,類似于 C 中的指針。

    此外,一個數組的任何變化都反映在另一個數組上。 例如,一個數組的形狀改變也會改變另一個數組的形狀。

    視圖或淺拷貝

    ndarray.view() 方會創建一個新的數組對象,該方法創建的新數組的維數更改不會更改原始數據的維數。使用切片創建視圖修改數據會影響到原始數組。

    副本或深拷貝

    ndarray.copy() 函數創建一個副本。 對副本數據進行修改,不會影響到原始數據,它們物理內存不在同一位置。

    Python append() 與深拷貝、淺拷貝

    深淺拷貝

    在 Python 中,對象賦值實際上是對象的引用。當創建一個對象,然后把它賦給另一個變量的時候,Python 并沒有拷貝這個對象,而只是拷貝了這個對象的引用,我們稱之為淺拷貝。

    在 Python 中,為了使當進行賦值操作時,兩個變量互補影響,可以使用 copy 模塊中的 deepcopy 方法,稱之為深拷貝。

    append() 函數

    當 list 類型的對象進行 append 操作時,實際上追加的是該對象的引用。

    id() 函數:返回對象的唯一標識,可以類比成該對象在內存中的地址。

    >>>alist = [] >>> num = [2] >>> alist.append( num ) >>> id( num ) == id( alist[0] ) True

    如上例所示,當 num 發生變化時(前提是 id(num) 不發生變化),alist 的內容隨之會發生變化。往往會帶來意想不到的后果,想避免這種情況,可以采用深拷貝解決:

    alist.append( copy.deepcopy( num ) )

    PS:
    id()函數:返回對象的唯一標識,可以類比成該對象在內存中的地址。

    NumPy 矩陣庫(Matrix)

    NumPy 中包含了一個矩陣庫 numpy.matlib,該模塊中的函數返回的是一個矩陣,而不是 ndarray 對象。

    一個m×nm \times nm×n 的矩陣是一個由 $ m $ 行(row)列 $ n $(column)元素排列成的矩形陣列。

    矩陣里的元素可以是數字、符號或數學式。

    matlib.empty()

    matlib.empty() 函數返回一個新的矩陣,語法格式為:

    numpy.matlib.empty(shape, dtype, order)

    參數說明:

    • shape: 定義新矩陣形狀的整數或整數元組
    • Dtype: 可選,數據類型
    • order: C(行序優先) 或者 F(列序優先)

    numpy.matlib.zeros()

    numpy.matlib.zeros() 函數創建一個以 0 填充的矩陣。

    numpy.matlib.ones()

    numpy.matlib.ones()函數創建一個以 1 填充的矩陣。

    numpy.matlib.eye()

    numpy.matlib.eye() 函數返回一個矩陣,對角線元素為 1,其他位置為零。

    numpy.matlib.eye(n, M,k, dtype)

    參數說明:

    • n: 返回矩陣的行數
    • M: 返回矩陣的列數,默認為 n
    • k: 對角線的索引
    • dtype: 數據類型

    numpy.matlib.identity()

    numpy.matlib.identity() 函數返回給定大小的單位矩陣。

    單位矩陣是個方陣,從左上角到右下角的對角線(稱為主對角線)上的元素均為 1,除此以外全都為 0。

    numpy.matlib.rand()

    numpy.matlib.rand() 函數創建一個給定大小的矩陣,數據是隨機填充的。

    NumPy 線性代數

    NumPy 提供了線性代數函數庫 linalg,該庫包含了線性代數所需的所有功能,可以看看下面的說明:

    函數描述
    dot兩個數組的點積,即元素對應相乘。
    vdot兩個向量的點積
    inner兩個數組的內積
    matmul兩個數組的矩陣積
    determinant數組的行列式
    solve求解線性矩陣方程
    inv計算矩陣的乘法逆矩陣

    numpy.dot()

    numpy.dot() 對于兩個一維的數組,計算的是這兩個數組對應下標元素的乘積和(數學上稱之為內積);對于二維數組,計算的是兩個數組的矩陣乘積;對于多維數組,它的通用計算公式如下,即結果數組中的每個元素都是:數組a的最后一維上的所有元素與數組b的倒數第二位上的所有元素的乘積和: dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])

    numpy.dot(a, b, out=None)

    參數說明:

    • a : ndarray 數組
    • b : ndarray 數組
    • out : ndarray, 可選,用來保存dot()的計算結果

    numpy.vdot()

    numpy.vdot() 函數是兩個向量的點積。 如果第一個參數是復數,那么它的共軛復數會用于計算。 如果參數是多維數組,它會被展開。

    numpy.inner()

    numpy.inner() 函數返回一維數組的向量內積。對于更高的維度,它返回最后一個軸上的和的乘積。

    numpy.matmul

    numpy.matmul 函數返回兩個數組的矩陣乘積。 雖然它返回二維數組的正常乘積,但如果任一參數的維數大于2,則將其視為存在于最后兩個索引的矩陣的棧,并進行相應廣播。

    另一方面,如果任一參數是一維數組,則通過在其維度上附加 1 來將其提升為矩陣,并在乘法之后被去除。

    numpy.linalg.det()

    numpy.linalg.det() 函數計算輸入矩陣的行列式。

    行列式在線性代數中是非常有用的值。 它從方陣的對角元素計算。 對于 2×2 矩陣,它是左上和右下元素的乘積與其他兩個的乘積的差。

    換句話說,對于矩陣[[a,b],[c,d]],行列式計算為 ad-bc。 較大的方陣被認為是 2×2 矩陣的組合。

    numpy.linalg.solve()

    numpy.linalg.solve() 函數給出了矩陣形式的線性方程的解。

    考慮以下線性方程:

    x + y + z = 62y + 5z = -42x + 5y - z = 27

    可以使用矩陣表示為:

    如果矩陣成為A、X和B,方程變為:

    AX = B或X = A^(-1)B

    numpy.linalg.inv()

    numpy.linalg.inv() 函數計算矩陣的乘法逆矩陣。

    逆矩陣(inverse matrix):設A是數域上的一個n階矩陣,若在相同數域上存在另一個n階矩陣B,使得: AB=BA=E ,則我們稱B是A的逆矩陣,而A則被稱為可逆矩陣。注:E為單位矩陣。

    NumPy IO

    Numpy 可以讀寫磁盤上的文本數據或二進制數據。

    NumPy 為 ndarray 對象引入了一個簡單的文件格式:npy

    npy 文件用于存儲重建 ndarray 所需的數據、圖形、dtype 和其他信息。

    常用的 IO 函數有:

    • load() 和 save() 函數是讀寫文件數組數據的兩個主要函數,默認情況下,數組是以未壓縮的原始二進制格式保存在擴展名為 .npy 的文件中。

    • savze() 函數用于將多個數組寫入文件,默認情況下,數組是以未壓縮的原始二進制格式保存在擴展名為 .npz 的文件中。

    • loadtxt() 和 savetxt() 函數處理正常的文本文件(.txt 等)

    numpy.save()

    numpy.save() 函數將數組保存到以 .npy 為擴展名的文件中。

    numpy.save(file, arr, allow_pickle=True, fix_imports=True)

    參數說明:

    • file:要保存的文件,擴展名為 .npy,如果文件路徑末尾沒有擴展名 .npy,該擴展名會被自動加上。
    • arr: 要保存的數組
    • allow_pickle: 可選,布爾值,允許使用 Python pickles 保存對象數組,Python 中的 pickle 用于在保存到磁盤文件或從磁盤文件讀取之前,對對象進行序列化和反序列化。
    • fix_imports: 可選,為了方便 Pyhton2 中讀取 Python3 保存的數據。

    .npy是 Numpy 專用的二進制格式后的數據,可以使用 load() 函數來讀取數據就可以正常顯示。

    numpy.savez

    numpy.savez() 函數將多個數組保存到以 npz 為擴展名的文件中。

    numpy.savez(file, *args, **kwds)

    參數說明:

    • file:要保存的文件,擴展名為 .npz,如果文件路徑末尾沒有擴展名 .npz,該擴展名會被自動加上。
    • args: 要保存的數組,可以使用關鍵字參數為數組起一個名字,非關鍵字參數傳遞的數組會自動起名為 arr_0, arr_1, … 。
    • kwds: 要保存的數組使用關鍵字名稱。

    numpy.savetxt()

    savetxt() 函數是以簡單的文本文件格式存儲數據,對應的使用 loadtxt() 函數來獲取數據。

    np.loadtxt(FILENAME, dtype=int, delimiter=' ') np.savetxt(FILENAME, a, fmt="%d", delimiter=",")

    參數 delimiter 可以指定各種分隔符、針對特定列的轉換器函數、需要跳過的行數等。

    總結

    以上是生活随笔為你收集整理的NumPy 笔记(超级全!收藏√)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产综合在线视频 | 亚洲乱码精品久久久 | 国内精品久久久久久久久久 | 成人av电影免费在线播放 | 国产精品视频app | 国产白浆在线观看 | 日韩精品一区二区三区在线视频 | 99久久er热在这里只有精品15 | 亚洲成 人精品 | 免费观看午夜视频 | 久久xx视频 | 精品久久在线 | 五月婷婷黄色网 | 国产高清免费av | 国产精品专区h在线观看 | 波多野结衣一区三区 | 在线观看韩日电影免费 | 色综合久久88色综合天天人守婷 | 亚洲自拍av在线 | 国产一线二线三线在线观看 | 国产精品久久久久久久久久久久午夜 | 天天色官网 | 97av影院| 国产无限资源在线观看 | 日韩欧美在线观看一区 | 午夜精品中文字幕 | 波多野结衣最新 | 日韩视频免费观看高清完整版在线 | 国产 视频 高清 免费 | 综合色在线观看 | 欧美另类交人妖 | 国产婷婷久久 | 婷婷四房综合激情五月 | 国产黄色成人av | 美女精品久久久 | 日韩大片在线观看 | 国产精品久久久久9999 | 国产成人99av超碰超爽 | 亚洲精品视频偷拍 | 久草久视频 | 亚洲免费在线视频 | 久久久国产精品电影 | 热re99久久精品国产66热 | 免费国产在线观看 | 超碰在线91| 日韩福利在线观看 | 天天操天天操天天干 | 手机在线日韩视频 | 亚洲精品乱码白浆高清久久久久久 | 国产午夜精品免费一区二区三区视频 | 开心婷婷色 | 夜夜夜草 | 特级黄色片免费看 | 久久综合视频网 | 国产一级二级三级在线观看 | 在线视频手机国产 | 干干夜夜| 中文字幕日本在线 | 亚洲清纯国产 | 中文字幕在线播放视频 | 欧美性色xo影院 | 综合网天天色 | 日韩亚洲在线视频 | 天天操天天爱天天干 | 99久久超碰中文字幕伊人 | 九九av | 国产免费三级在线观看 | www.亚洲| 亚洲网站在线 | 日韩欧美国产精品 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 九九久久免费视频 | 国产美女精品视频免费观看 | 国产香蕉97碰碰碰视频在线观看 | 不卡的av电影 | 91高清视频免费 | 胖bbbb搡bbbb擦bbbb | 亚洲精品黄色片 | 国产高清精品在线 | 97av影院| 国产精品永久在线观看 | 亚洲国产999 | 99在线热播精品免费99热 | 免费视频 三区 | 免费日p视频 | 欧美日韩亚洲精品在线 | 9999在线| 日韩av资源在线观看 | 国产精品综合久久久久 | 99爱在线| 亚洲激情视频在线观看 | 国产亚洲欧美一区 | 在线国产视频一区 | 亚洲视频免费在线观看 | 免费成人结看片 | 激情导航 | 四虎国产精品成人免费影视 | 日韩免费一级电影 | 日本性动态图 | 久久久国产一区 | 日韩精品免费一区 | 久久99久久99精品免费看小说 | 亚洲经典精品 | 国产又粗又猛又黄又爽 | 亚洲一级免费电影 | www.天天射 | а天堂中文最新一区二区三区 | www.五月天色 | 日韩中文字幕免费视频 | 欧美一级片在线免费观看 | 亚洲精品国产精品国自产观看浪潮 | 亚洲成aⅴ人在线观看 | 一区二区三区四区五区在线 | 91成人蝌蚪 | 日韩欧美在线综合网 | 久久爱导航 | 久久午夜精品影院一区 | 亚洲免费在线观看视频 | 尤物九九久久国产精品的分类 | 欧美另类tv | 精品国产一区二区三区四区在线观看 | 国产精品2区 | 天天搞天天干天天色 | 在线免费观看视频一区二区三区 | 五月开心六月婷婷 | 五月天色综合 | 亚洲精品免费在线播放 | 成人久久亚洲 | 亚洲欧洲一区二区在线观看 | 欧美美女视频在线观看 | 国产96在线视频 | 精品女同一区二区三区在线观看 | 日韩电影在线一区 | 亚洲天堂社区 | 成人午夜黄色 | 五月婷婷中文网 | 国产第页| 精品国产一区二区三区免费 | www久久国产 | 欧美日韩成人一区 | 久久久国产精华液 | 欧美精品在线观看免费 | 欧美久久九九 | 国产精品激情 | 日韩一区精品 | 精品国产中文字幕 | 人人爱人人射 | 91在线精品一区二区 | 免费福利在线视频 | www.色午夜.com| 免费精品 | 国产午夜精品一区二区三区嫩草 | 日韩免费在线播放 | 99精品国自产在线 | 欧美午夜精品久久久久久浪潮 | 久久精品中文视频 | 欧美 高跟鞋交 xxxxhd | 国产精品99免费看 | 久久国产精品视频观看 | 在线观看av网 | 2023国产精品自产拍在线观看 | 国产精品视频免费观看 | 91自拍91| 日韩在线视频网址 | 欧美色伊人 | 国内久久视频 | 国产精品乱码久久 | 午夜精品99久久免费 | 看国产黄色片 | 91资源在线免费观看 | 亚洲精品黄色 | 狠狠狠的干 | 免费97视频| 亚洲电影久久 | 91看片看淫黄大片 | 91网站观看 | 欧美在线观看小视频 | 精品免费国产一区二区三区四区 | av成人资源 | 成人黄色大片 | 午夜视频在线观看一区二区三区 | 免费国产在线精品 | 91视频免费视频 | 亚洲国产美女精品久久久久∴ | 成人a在线观看 | 中文字幕黄色网址 | 日韩精品第一区 | 国产精品尤物 | 国产黄在线 | 久久国产精品视频观看 | 欧美日韩啪啪 | 国产乱码精品一区二区蜜臀 | 日躁夜躁狠狠躁2001 | 色婷丁香 | 黄色片亚洲 | 久久久久久免费毛片精品 | 97精品一区二区三区 | 网站在线观看你们懂的 | 色婷婷狠狠五月综合天色拍 | a成人v | 五月婷婷在线视频 | 美女免费视频观看网站 | 欧美一区二区三区在线 | 国产亚洲一区 | 色视频在线观看免费 | 欧美-第1页-屁屁影院 | 国产精品一区久久久久 | 狠狠狠色丁香婷婷综合久久五月 | 亚洲精品男人的天堂 | 国产在线黄色 | 久久精选视频 | 丁香网五月天 | 丁香花在线观看免费完整版视频 | 久久久三级视频 | 乱男乱女www7788| 婷婷精品视频 | 丁香六月在线观看 | 国产成人黄色片 | 九月婷婷人人澡人人添人人爽 | 色香蕉视频 | 婷婷四房综合激情五月 | 免费久久久久久久 | 国产一区二区三区在线免费观看 | 免费看一级片 | 99色| 狠狠狠色丁香综合久久天下网 | 狠狠干中文字幕 | 色欧美综合 | 成人在线视频免费观看 | 色婷婷狠狠操 | 午夜三级毛片 | 国产精品二区在线观看 | 亚洲精品视频在线观看视频 | 九九热av| 天天弄天天操 | 亚州中文av | 九九九九九九精品任你躁 | 国产精品久久一区二区三区不卡 | 日本在线观看一区二区三区 | 99色资源 | 亚洲综合成人婷婷小说 | a久久久久 | 久久草视频 | 一区二区欧美激情 | 狠狠操狠狠干天天操 | 激情九九 | 91香蕉视频好色先生 | 在线观看国产中文字幕 | 亚洲激情在线观看 | 日韩久久精品 | 狠狠干干 | 999精品网| 婷婷色网视频在线播放 | 日韩欧美在线免费 | 国产1区2区| 福利一区在线视频 | 国色天香在线 | 久久久久亚洲天堂 | 久久人人爽人人爽人人片 | 欧美a级片免费看 | 成人免费观看av | 久久人人爽人人片av | 99免费在线播放99久久免费 | 99在线视频网站 | 成人一区二区在线 | 国产免费视频在线 | www国产亚洲精品久久网站 | 在线午夜av | 成年人黄色大片在线 | 亚洲精品国产成人 | 日韩高清av在线 | 中文字幕亚洲国产 | 九九av | 国产999精品久久久久久绿帽 | 伊人六月 | 国产一级免费视频 | 91aaa在线观看 | 成人超碰在线 | 国产精品一区二区三区久久久 | 丁香婷婷激情五月 | 麻豆国产精品视频 | 中文字幕在线字幕中文 | 亚洲91精品在线观看 | 五月天中文字幕mv在线 | 中文字幕日韩电影 | 国产成人精品免费在线观看 | 日韩在线视频免费播放 | 午夜美女wwww | 91亚洲夫妻 | 一级α片免费看 | 在线电影中文字幕 | 国产精品免费久久久久久久久久中文 | 一区在线电影 | 国产精品videossex国产高清 | www.狠狠插.com | 午夜视频免费 | 在线观看一区 | 精品国产乱码久久久久久1区2匹 | 国产精品中文字幕在线播放 | 色网站视频 | 中文字幕一区二区三区在线观看 | 在线观看91久久久久久 | 欧美一级片免费 | 午夜美女福利 | 五月开心色 | 日韩mv欧美mv国产精品 | 久久精彩免费视频 | 爱情影院aqdy鲁丝片二区 | 2023年中文无字幕文字 | 视频在线91 | 亚洲另类视频在线 | 亚洲女欲精品久久久久久久18 | 中文字幕免费成人 | 久久怡红院 | 中文字幕乱码日本亚洲一区二区 | 日韩区欧美久久久无人区 | 国产精品18久久久久久久网站 | 成人黄色在线 | 天天爽网站 | 国产精品99久久免费观看 | 天天干,天天射,天天操,天天摸 | 午夜精品一区二区国产 | 免费麻豆视频 | 欧美一区二区伦理片 | 韩日av在线| 成年人电影免费在线观看 | 在线精品视频免费播放 | 国产精品久久久久久久久久不蜜月 | 九九免费精品视频在线观看 | www.亚洲视频.com| 一本一本久久a久久精品牛牛影视 | 中文字幕亚洲不卡 | 免费在线观看日韩欧美 | 欧美日韩免费在线视频 | 99亚洲国产精品 | 婷婷九月丁香 | www.少妇| 亚洲欧美日本国产 | 一区二区三区在线电影 | 高清免费在线视频 | 久久尤物电影视频在线观看 | 91精品啪 | 日韩色一区二区三区 | 久久久黄色免费网站 | 久久久久97国产 | 久久这里有 | 六月婷婷久香在线视频 | 国产精品久久久一区二区三区网站 | 成人丝袜| 免费观看黄 | 99久久99视频只有精品 | 亚洲在线视频免费观看 | 免费男女羞羞的视频网站中文字幕 | 国产精品一区二区三区久久久 | 日韩欧美一区二区在线播放 | 久久99国产精品 | 亚洲免费av在线 | 亚洲精品乱码久久久久久蜜桃动漫 | 免费精品在线观看 | 国产精品免费久久久久影院仙踪林 | 久久精品成人欧美大片古装 | 日日噜噜噜噜夜夜爽亚洲精品 | 2018好看的中文在线观看 | 久久久久久国产精品999 | 成人免费网站视频 | 久久成人毛片 | 国产成人一区二区三区久久精品 | 亚洲精品国产电影 | 亚洲精品视频一二三 | 亚洲欧美国产精品va在线观看 | 久久国产免费看 | 国产精品第52页 | 免费视频三区 | 丁香六月婷婷开心婷婷网 | 久久综合综合久久综合 | 天天人人| 国产青春久久久国产毛片 | 伊人在线视频 | 久久综合中文色婷婷 | 狠狠干免费| 免费观看视频黄 | 在线观看中文字幕一区二区 | 99精品免费久久久久久久久日本 | 美女在线观看网站 | 成年人视频在线免费播放 | 国产中文字幕第一页 | 国产精品麻豆三级一区视频 | 一区二区三区在线视频观看58 | 国产视频日本 | 黄色片视频免费 | 久久久久久久久久影院 | 国产自产高清不卡 | 中文字幕中文字幕在线中文字幕三区 | 香蕉在线视频播放网站 | 在线观看精品一区 | av超碰免费在线 | 国产精品99爱 | 色操插| 人人dvd| 国产精品麻豆视频 | 日韩欧美国产精品 | 国产精品久久久区三区天天噜 | 国产精品高清av | www91在线观看| 精品视频97| 日韩视频欧美视频 | 热久久99这里有精品 | 亚洲精品国产精品久久99热 | 日本中文一级片 | av三级在线播放 | 久久久久久久久久久网 | 草久久av | 午夜精品久久久久久久99热影院 | 日韩精品一区二区三区水蜜桃 | 成年人毛片在线观看 | 婷婷综合电影 | 免费看的黄网站 | 成人精品一区二区三区中文字幕 | 日本精品视频在线观看 | 国产99久久久精品 | 伊人中文在线 | 亚洲精品国产第一综合99久久 | 国产精品18久久久久白浆 | 欧美日韩亚洲一 | 91最新地址永久入口 | 九九免费在线观看 | 亚洲黄色片在线 | 国产最新视频在线 | 国产精品久久二区 | 粉嫩av一区二区三区四区 | 亚洲成人软件 | 国产一区二区三区久久久 | 成人三级网站在线观看 | 免费成人在线网站 | 国产美女在线免费观看 | 亚洲国产欧美在线人成大黄瓜 | 亚洲精品综合欧美二区变态 | 亚洲欧美日韩精品一区二区 | 中文字幕中文中文字幕 | 人人干干人人 | 亚洲高清资源 | 麻豆国产精品视频 | 欧美一级片播放 | 一区二区三区日韩视频在线观看 | 色老板在线视频 | 91在线观看黄| 手机在线看a| 中文字幕 二区 | 高清不卡毛片 | 日韩理论影院 | 波多野结衣视频一区二区 | 国产精品s色 | www.神马久久 | 蜜桃视频色 | 久久理论视频 | 激情狠狠干 | 日韩黄色免费电影 | 久久久午夜电影 | 色资源中文字幕 | 欧洲视频一区 | 国模一区二区三区四区 | av丝袜美腿| 久久久91精品国产 | 狠狠躁18三区二区一区ai明星 | 91香蕉视频好色先生 | 国产在线观看91 | 欧美激情精品久久 | 亚洲一区欧美精品 | 天堂在线一区 | 91精品国产91p65 | 奇米四色影狠狠爱7777 | 国产精品久久久久久久久久久久午夜 | 天天干天天草 | 国产视频高清 | 四虎在线永久免费观看 | 中文字幕色综合网 | 日韩综合第一页 | 色www永久免费 | 夜夜躁狠狠躁 | 亚洲精品视频网址 | 国产日韩欧美在线免费观看 | 成人香蕉视频 | 中文永久字幕 | 日韩在线视频免费播放 | bayu135国产精品视频 | 毛片一区二区 | 久久久久久蜜av免费网站 | 欧美福利片在线观看 | 欧美老女人xx | 干亚洲少妇 | 激情av综合 | 狠狠色狠狠综合久久 | 美女视频网 | av免费观看高清 | 在线看黄网站 | www色网站 | 亚洲人成免费网站 | 日韩黄在线观看 | 怡红院av久久久久久久 | 国产综合精品久久 | 91久久久久久久 | 亚洲最新在线 | 干狠狠| 天天操天天操天天操天天操天天操天天操 | 在线免费色| 91av超碰 | 999ZYZ玖玖资源站永久 | 91视频在线免费 | 香蕉视频网站在线观看 | 欧美日韩三级在线观看 | 免费观看一区二区三区视频 | 中文国产成人精品久久一 | www.av小说| 日韩在线观看网站 | 在线看国产视频 | 99久久影院 | 六月色婷婷 | 国产精品手机视频 | 97成人精品视频在线播放 | 精品 一区 在线 | 国产精品av一区二区 | 国产精品久久久久免费 | 亚洲精品久久久久久久不卡四虎 | 天天爱天天射天天干天天 | 97热久久免费频精品99 | 久久精品视频18 | 六月丁香综合 | 射久久久 | 一区二区三区四区五区在线 | 91视频久久久久 | 在线免费成人 | av大全在线免费观看 | 丁香视频免费观看 | av免费看在线 | 久久免费99 | 九九免费在线视频 | 91视频亚洲| 日韩av电影手机在线观看 | 成人免费视频观看 | 婷婷综合久久 | 久草视频观看 | 国产一级在线观看 | 婷婷丁香在线观看 | 欧美日韩国产精品久久 | 精品国产一区二区三区在线观看 | 亚洲a色 | 日韩国产欧美在线视频 | 狠狠色伊人亚洲综合网站色 | 亚洲影视九九影院在线观看 | 久久理伦片 | 国产美女在线免费观看 | 中文字幕日韩伦理 | 国产精品麻 | 亚洲一级片在线观看 | 色婷婷福利 | 久草在线视频在线观看 | 国产精品久久久免费 | 久久精品视频2 | 免费在线观看av的网站 | 日日草天天草 | 九九热在线视频免费观看 | 爱干视频 | 婷婷丁香九月 | 麻豆成人精品视频 | 丁香五香天综合情 | 日韩免费av网址 | 美女视频黄网站 | 五月天狠狠操 | 国产精品久久久久久久久免费看 | 国产成人中文字幕 | 亚洲精品影视在线观看 | 91视频高清免费 | 99视频导航 | www.五月天婷婷 | 久久精品人人做人人综合老师 | 日韩免费网址 | 国产精品麻豆欧美日韩ww | 日韩中文字幕a | 午夜性生活 | 中文字幕丝袜美腿 | 91av亚洲| 日本黄色免费在线观看 | 在线国产能看的 | 国产亚洲精品久久久久久网站 | 手机在线日韩视频 | 久久久.com | 婷婷网址| 亚洲国产精品电影 | 亚洲国产免费看 | 婷婷丁香色 | 91香蕉视频黄 | 国产成人不卡 | 欧美va天堂在线电影 | 亚洲1级片 | 最近能播放的中文字幕 | 免费电影一区二区三区 | 日本黄区免费视频观看 | 欧美激情另类文学 | 九九热有精品 | 欧美日韩精品久久久 | 久久网址 | 日韩一级黄色片 | 亚洲综合色播 | а天堂中文最新一区二区三区 | 国产精品久久麻豆 | 久久97超碰| 国产精品免费观看网站 | 亚洲国产手机在线 | 亚洲欧美日本国产 | av一区二区三区在线观看 | 亚洲国产日韩欧美 | 日韩二区三区在线观看 | 欧美成人aa| 国产精品中文字幕在线 | 成 人 黄 色视频免费播放 | 在线观看 国产 | 午夜精品视频福利 | 国产成人久久久77777 | av在线之家电影网站 | av电影中文 | 日韩精品一区二区三区三炮视频 | 国产一线天在线观看 | 日韩有码中文字幕在线 | 精品国产一区二区在线 | 97在线精品国自产拍中文 | 日韩在线网址 | 五月亚洲| 亚洲爱av | 99视频99 | 久久久久在线视频 | 天天躁日日 | 91精品系列 | 国产系列在线观看 | 碰超在线 | 黄色三级在线观看 | 精品一区精品二区高清 | 91热精品| 97精品国产一二三产区 | 玖玖视频精品 | 欧美一级免费 | 中文亚洲欧美日韩 | 西西444www大胆无视频 | 黄色毛片在线 | 91看片在线看片 | 国产97在线看| 日韩影视大全 | av成人在线观看 | 在线观看久| 日本精品一区二区三区在线观看 | 99爱精品在线 | 久久调教视频 | 国产精品一区二区三区在线免费观看 | 91福利视频免费 | 国产中文字幕第一页 | 亚洲日韩欧美一区二区在线 | 久久手机精品视频 | 激情视频免费观看 | 亚洲清纯国产 | 又粗又长又大又爽又黄少妇毛片 | 91爱爱网址| 国产福利91精品张津瑜 | 日韩午夜三级 | 日本久久电影网 | 国产黄色理论片 | 麻豆视频国产精品 | 四虎在线免费 | 国产特级毛片aaaaaaa高清 | 九九在线免费视频 | 久久综合免费视频 | 成人午夜av电影 | 国产视频不卡 | 久久国产精品一二三区 | 久久免费视频播放 | www.国产高清| 99se视频在线观看 | 中文字幕一区二区在线观看 | 国产不卡免费av | 草久草久 | 色多多视频在线观看 | 日韩欧美一区二区三区视频 | 国产女做a爱免费视频 | 在线有码中文字幕 | 久草在线在线 | 久久视 | 99精品欧美一区二区 | 亚洲黄网站| 91福利影院在线观看 | 蜜臀av性久久久久蜜臀av | 国产录像在线观看 | 婷婷丁香狠狠爱 | 久久精品视频观看 | 亚洲国产精品激情在线观看 | 九九色在线 | 久久免费精品视频 | 国产亚洲视频系列 | 97视频资源 | 91精品国产综合久久久久久久 | 亚洲精品一区二区网址 | 伊人日日干| 亚洲毛片视频 | 国产精品色在线 | 久草视频在线免费 | 国产精品嫩草影院9 | 在线日本看片免费人成视久网 | 色欧美88888久久久久久影院 | 精品国产91亚洲一区二区三区www | 免费看片色| 国产在线播放一区二区三区 | 毛片网站免费在线观看 | 色视频网址 | 97超级碰 | 亚洲日本精品 | 人人舔人人射 | 久久五月婷婷丁香社区 | 欧美日韩高清一区二区 国产亚洲免费看 | 天天爱av导航 | 少妇视频在线播放 | 国产精品视频99 | 91大神电影 | 国产超碰在线观看 | 日本中文字幕观看 | 99中文在线| 热久久国产精品 | 美女视频永久黄网站免费观看国产 | 久久免费成人网 | 婷婷电影在线观看 | 亚洲精品久久在线 | www成人精品| 亚洲精品视频在线观看免费视频 | 久久高清毛片 | av黄色在线观看 | 久久午夜影院 | 97色婷婷成人综合在线观看 | 午夜电影 电影 | 色99色| 青青河边草免费观看完整版高清 | 亚洲狠狠丁香婷婷综合久久久 | 国产黄网站在线观看 | 成人午夜精品 | 区一区二区三在线观看 | 天天操天天操 | 在线 影视 一区 | 99久久精品无码一区二区毛片 | 欧美一级高清片 | 免费日韩一区二区三区 | 成人av视屏 | 婷婷亚洲综合五月天小说 | 欧美极品xxxx | 日日爽夜夜操 | 免费看的av片 | 国产精品一区二区三区在线免费观看 | 久久调教视频 | 欧美性生活小视频 | 91av视频免费在线观看 | 日本中文在线观看 | 欧美福利网址 | 在线成人一区二区 | 91福利免费 | 亚洲欧美国产精品va在线观看 | 国产精品日韩欧美 | 草在线视频 | 国产高清一区二区 | 国产视频精品网 | a国产精品 | 在线看v片成人 | av中文在线 | 欧美日韩精品在线视频 | 国产精品第52页 | 欧美巨大荫蒂茸毛毛人妖 | 91av福利视频| 国产字幕在线播放 | av成年人电影 | 丁香在线| 久久99精品国产一区二区三区 | 久草视频手机在线 | 天天爽天天爽夜夜爽 | 日韩视频在线观看免费 | 成人国产一区 | 在线观看中文字幕视频 | 超碰人人在线 | 国产淫片免费看 | 久久99电影 | 国产成人一区二区三区免费看 | 少妇资源站 | 亚洲最新av| 黄色国产高清 | 亚洲精品综合在线观看 | 亚洲黄色激情小说 | 中文字幕 国产专区 | 色99之美女主播在线视频 | 欧美一级日韩免费不卡 | 色噜噜在线观看 | 中文字幕在线中文 | 色av婷婷| 日韩在线视频在线观看 | 欧美日bb| 免费a网址 | 极品久久久久久久 | 丝袜美女视频网站 | 五月婷婷六月丁香 | 日韩精品视频久久 | 国产99亚洲 | 2022国产精品视频 | 亚洲精品婷婷 | 亚洲va欧美va人人爽春色影视 | www.神马久久 | 97精品在线 | 国产成人久久精品一区二区三区 | 婷婷六月天丁香 | 91亚洲免费| 精品免费观看视频 | 狠狠综合 | 国产成人亚洲精品自产在线 | www久久精品 | 午夜精品福利在线 | av日韩精品 | 91成人国产| 欧美孕妇与黑人孕交 | 狠狠干免费 | 国产日韩精品一区二区三区在线 | 成人免费在线播放 | 国内精品久久久久久久久久久 | 99热这里只有精品国产首页 | 免费看av在线 | 97在线免费视频观看 | 天天操夜夜叫 | 操操操av | 精品国产伦一区二区三区观看说明 | 久久久国产精品网站 | 日韩av中文| 国产成人精品一区二区三区在线观看 | 国产999精品视频 | 亚洲婷婷综合色高清在线 | 亚洲精品视频在线观看视频 | 99久久精品免费看国产麻豆 | 98福利在线 | 国产 日韩 中文字幕 | 亚洲一区二区三区精品在线观看 | 国产成人一区在线 | 97超碰精品 | 天天操夜夜摸 | 久久精品欧美一区二区三区麻豆 | av在线播放中文字幕 | 欧美精品做受xxx性少妇 | 福利网址在线观看 | 伊人网综合在线观看 | 97爱| 一二三久久久 | 国产不卡精品视频 | 成人午夜精品久久久久久久3d | 久久久91精品国产 | 激情影院在线观看 | 国产偷在线 | 亚洲专区路线二 | 欧美a级片网站 | 91久久精品一区二区三区 | 亚洲一区二区三区四区精品 | 色资源网免费观看视频 | 中文字幕一区在线 | 免费在线观看av电影 | 激情开心色 | 欧美精品中文 | 国产伦精品一区二区三区无广告 | 怡春院av| 久久精品国产美女 | 亚洲视频免费在线看 | 五月婷婷六月综合 | 麻豆视频国产精品 | 精品久久亚洲 | 欧美超碰在线 | 欧美在线aaa | 国产黄色观看 | 久久国产精品久久精品 | 国产一级视频在线 | 91av影视| 久久99网 | 一个色综合网站 | 天天干天天干天天 | 国产精品久久久久久久久久不蜜月 | 黄色精品网站 | 91黄色小视频 | 久久婷婷国产色一区二区三区 | 欧美狠狠色| 欧美日韩在线视频一区二区 | 国产精品成人久久 | 丁香花中文在线免费观看 | 国产精品激情偷乱一区二区∴ | 99国产精品久久久久久久久久 | 欧美日韩国产二区 | 精品视频在线播放 | 日韩一区二区三免费高清在线观看 | 在线一区二区三区 | 亚洲第一久久久 | 日韩狠狠操 | 国产色拍拍拍拍在线精品 | 一区二区三区动漫 | 国产伦精品一区二区三区高清 | 久久免费影院 | 国产日本高清 | 欧美性极品xxxx娇小 | 日本公妇在线观看 | 亚洲综合丁香 | 久久午夜羞羞影院 | 精品夜夜嗨av一区二区三区 | 亚洲精品久久久久久中文传媒 | 欧美性大胆 | 欧美视频不卡 | 国产成人精品女人久久久 | 欧美精品在线一区 | 国产黄大片 | 中文字幕国产亚洲 | 99久久99久久免费精品蜜臀 | 午夜精品999 | 男女拍拍免费视频 | 人人藻人人澡人人爽 | 欧美精品乱码久久久久久按摩 | 欧美片网站yy | 97碰在线 | 伊人狠狠 | 久久人人爽人人爽人人片av免费 | 69av在线视频 | 五月天激情综合网 | 毛片激情永久免费 | 91久久黄色| 狠狠干网站 | 五月婷丁香 | 国产精品一区二区中文字幕 | 欧美日韩高清一区二区 | 久在线 | 久久精品电影 | 国产护士hd高朝护士1 | 久久人人爽人人爽人人片av软件 | 亚洲一区二区三区四区在线视频 | av黄色在线| 亚洲综合视频在线观看 | 51久久成人国产精品麻豆 | 欧美国产精品一区二区 | 精品在线一区二区 | www.狠狠插.com | 91热爆视频 | 99久久精品日本一区二区免费 | 日韩午夜小视频 | www.夜夜草 | 国产精品中文久久久久久久 | 午夜精品久久久久久久99无限制 | 色午夜影院 | av资源在线观看 | 欧美一性一交一乱 | 欧美ⅹxxxxxx| 美女视频久久 | 日p在线观看 | 伊人成人久久 | 成年人免费在线播放 | www.av免费 | 亚洲成a人片77777kkkk1在线观看 | 婷婷丁香激情五月 | 99国内精品| 黄色三级视频片 | 999久久久免费视频 午夜国产在线观看 | 亚洲免费不卡 | 欧美成人猛片 | 日韩三级在线观看 | 91麻豆精品国产91久久久更新时间 | 国产精品18久久久久久久久 | 日日干 天天干 | 亚洲视频在线观看网站 | 天天干天天做天天操 | 国色天香永久免费 | 亚洲精品一区二区三区高潮 | 成人午夜免费剧场 | 在线免费观看羞羞视频 | 伊人狠狠色丁香婷婷综合 | 视频国产 | 91精选在线观看 | 日韩二三区 | 亚洲成人黄色在线观看 | 亚洲综合成人专区片 | 久久国产精品一国产精品 | 一区二区三区视频网站 | 久久久久久久久久毛片 | 亚洲精品国产成人 | 69中文字幕 | 国产精品久久影院 | 黄色av电影在线 | 天天操天天艹 | 午夜久久久久久久久久久 | 激情久久综合网 | 99色人| 欧美精品在线观看 | 久久国产精彩视频 | 一区中文字幕 | 亚洲国产精品成人av | 13日本xxxxxⅹxxx20 | 国产99久久久精品 | 2023亚洲精品国偷拍自产在线 | 久久免费99 | 国产黄av | 精品视频在线视频 |