Numpy常用API------陣列
阿新 • • 發佈:2018-12-19
陣列屬性
NumPy 陣列的維數稱為秩(rank),一維陣列的秩為 1,二維陣列的秩為 2,以此類推。
很多時候可以宣告 axis。axis=0,表示沿著第 0 軸進行操作,即對每一列進行操作;axis=1,表示沿著第1軸進行操作,即對每一行進行操作
屬性 | 說明 |
---|---|
ndarray.ndim | 秩,即軸的數量或維度的數量 |
ndarray.shape | 陣列的維度,對於矩陣,n 行 m 列 |
ndarray.size | 陣列元素的總個數,相當於 .shape 中 n*m 的值 |
ndarray.dtype | ndarray 物件的元素型別 |
ndarray.itemsize | ndarray 物件中每個元素的大小,以位元組為單位 |
ndarray.flags | ndarray 物件的記憶體資訊 |
ndarray.real | ndarray元素的實部 |
ndarray.image | ndarray 元素的虛部 |
Numpy建立陣列
方法 | 用法 | 引數說明(相同引數不重複說明) |
---|---|---|
numpy.empty (建立一個空陣列) |
numpy.empty(shape, dtype = float, order = ‘C’) | shape 陣列形狀 dtype 陣列型別 order “C” 用於C的航陣列 或者’F’用於FORTRAN的列陣列 |
numpy.zeros (建立一個指定大小的陣列,用0填充) |
numpy.zeros(shape, dtype = float, order = ‘C’) | |
numpy.ones ( 建立指定形狀的陣列,陣列元素以 1 來填充 ) |
numpy.ones(shape, dtype = None, order = ‘C’) |
Numpy 從數值範圍建立陣列從已有陣列建立陣列
方法 | 用法 | 引數說明(相同引數不重複說明) |
---|---|---|
numpy.arange (numpy 包中的使用 arange 函式建立數值範圍並返回 ndarray 物件) |
numpy.arange(start, stop, step, dtype) | start 起始值 預設0 stop 終止值 step 步長 預設1 dtype 返回的ndarray資料型別 |
numpy.linspace (函式用於建立一個一維陣列,陣列是一個等差數列構成的) |
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) | num 生成等步長的樣本量 endpoint 該值為 ture 時,數列中中包含stop值,反之不包含,預設是True。 retstep 如果為 True 時,生成的陣列中會顯示間距,反之不顯示。 |
numpy.logspace (函式用於建立一個於等比數列) |
np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None) | base 對數 log 的底數。 |
Numpy 陣列操作
方法 | 用法 | 引數說明(相同引數不重複說明) |
---|---|---|
numpy.reshape (函式可以在不改變資料的條件下修改形狀) |
numpy.reshape(arr, newshape, order=‘C’) | arr:要修改形狀的陣列 newshape:整數或者整數陣列,新的形狀應當相容原有形狀 order:‘C’ – 按行,‘F’ – 按列,‘A’ – 原順序,‘k’ – 元素在記憶體中的出現順序。 |
numpy.ndarray.flat (元素迭代器) |
a = np.arange(9).reshape(3,3) for element in a.flat: print (element) 輸出:0\n1\n2\n3\n4\n5\n6\n7\n8(換行符\n) |
|
numpy.ndarray.flatten (返回一份陣列拷貝,對拷貝所做的修改不會影響原始陣列) |
ndarray.flatten(order=‘C’) | |
numpy.ravel (展平的陣列元素) |
numpy.ravel(a, order=‘C’) | |
numpy.transpose numpy.ndarray.T (對換陣列的維度) |
numpy.transpose(arr, axes) a = np.arange(12).reshape(3,4) a.T(行列互換) |
arr:要操作的陣列 axes:整數列表,對應維度,通常所有維度都會對換 |
連線陣列
方法 | 用法 | 引數說明(相同引數不重複說明) |
---|---|---|
numpy.concatenate (沿指定軸連線相同形狀的兩個或多個數組) |
numpy.concatenate((a1, a2, …), axis) | a1, a2, …:相同型別的陣列 axis:沿著它連線陣列的軸,預設為 0 |
numpy.stack (用於沿新軸連線陣列序列) |
numpy.stack(arrays, axis) | arrays:相同形狀的陣列序列 axis:返回陣列中的軸,輸入陣列沿著它來堆疊 |
numpy.hstack (通過水平堆疊來生成陣列) |
numpy.hstack(arr1,arr2) | |
numpy.vstack (通過垂直堆疊來生成陣列) |
numpy.hstack(arr1,arr2) |
陣列元素的新增與刪除
方法 | 用法 | 引數說明(相同引數不重複說明) |
---|---|---|
numpy.split (分割陣列) |
numpy.split(ary, indices_or_sections, axis) | ary:被分割的陣列 indices_or_sections:果是一個整數,就用該數平均切分,如果是一個數組,為沿軸切分的位置(左開右閉) axis:沿著哪個維度進行切向,預設為0,橫向切分。為1時,縱向切分 |
numpy.hsplit (用於水平分割陣列,指定要返回的相同形狀的陣列數量來拆分原陣列) |
numpy.hsplit(arr,) | – |
numpy.vsplit (用於垂直分割陣列) |
– | – |
陣列元素的新增與刪除
方法 | 用法 | 引數說明(相同引數不重複說明) |
---|---|---|
numpy.resize (返回指定形狀的新陣列) |
numpy.resize(arr, shape) | arr:要修改大小的陣列 shape:返回陣列的新形狀 |
numpy.append (陣列的末尾新增值。 追加操作會分配整個陣列,並把原來的陣列複製到新陣列中) |
numpy.append(arr, values, axis=None) | arr:輸入陣列 values:要向arr新增的值,需要和arr形狀相同(除了要新增的軸) axis:預設為 None。當axis無定義時,是橫向加成 當axis為0時,陣列是加在下面(行數要相同) 當axis為1時,陣列是加在右邊(行數要相同) |
numpy.insert (在給定索引之前,沿給定軸在輸入陣列中插入值,如果未提供軸,則輸入陣列會被展開) |
numpy.insert(arr, obj, values, axis) | arr:輸入陣列 obj:在其之前插入值的索引 values:要插入的值 axis:沿著它插入的軸,如果未提供,則輸入陣列會被展開 |
numpy.delete (返回從輸入陣列中刪除指定子陣列的新陣列。 與 insert() 函式的情況一樣,如果未提供軸引數,則輸入陣列將展開) |
numpy.delete(arr, obj, axis) | arr:輸入陣列 obj:可以被切片,整數或者整數陣列,表明要從輸入陣列刪除的子陣列 axis:沿著它刪除給定子陣列的軸,如果未提供,則輸入陣列會被展開 |
numpy.unique (去除陣列中的重複元素) |
numpy.unique(arr, return_index, return_inverse, return_counts) | arr:輸入陣列,如果不是一維陣列則會展開 return_index:如果為true,返回新列表元素在舊列表中的位置(下標),並以列表形式儲 return_inverse:如果為true,返回舊列表元素在新列表中的位置(下標),並以列表形式儲 return_counts:如果為true,返回去重陣列中的元素在原陣列中的出現次數 |