1. 程式人生 > >Numpy常用API------陣列

Numpy常用API------陣列

陣列屬性

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,返回去重陣列中的元素在原陣列中的出現次數