一、簡介
numpy是Python中處理數值計算的重要庫之一,提供了高效的數組(array)數據結構,方便進行向量、矩陣運算等線性代數操作。其中最基本的數據結構np.array就是本文重點介紹的對象,本文將依次從創建、基礎操作、多維數組、專用函數、文件讀寫等角度對np.array進行詳細的闡述。
二、創建數組
np.array可以從Python list或tuple創建數組,例如:
import numpy as np
a = np.array([1, 2, 3])
b = np.array((4, 5, 6))
print(a) #[1, 2, 3]
print(b) #[4, 5, 6]
也可以直接傳遞多維list或tuple創建多維數組:
a = np.array([[1, 2], [3, 4], [5, 6]])
print(a)
[[1 2]
[3 4]
[5 6]]
另外,np.zeros、np.ones、np.empty等專門用於創建特定形狀數組的工廠函數也是常用的創建數組方式,例如:
a = np.zeros((3, 4))
print(a)
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
上例中,np.zeros((3, 4))將返回一個3×4全是0的數組。一些常用的特定形狀數組的創建方式如下表:
函數 | 描述 |
---|---|
np.zeros(shape) | 返回指定形狀的全0數組 |
np.ones(shape) | 返回指定形狀的全1數組 |
np.empty(shape) | 返回指定形狀的未初始化數組 |
np.eye(N) | 返回N×N的單位矩陣 |
np.linspace(start, end, num) | 返回start到end範圍內,均勻間隔的num個值構成的數組 |
np.arange(start, end, step) | 返回start到end範圍內,步長為step的序列構成的數組 |
三、基礎操作
一般對數組的操作都是基於數組的索引,即數組元素位置,例如:
a = np.array([10, 20, 30])
print(a[0]) #10
a[0] = 100
print(a) #[100 20 30]
此外,np.array還支持reshape、transpose、矩陣乘法等基礎數學操作。
reshape是重新定義數組的形狀(即由維度轉換為另一維度形狀),例如:
a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.reshape((3, 2))
print(b)
[[1 2]
[3 4]
[5 6]]
transpose是交換數組的維度(即將原數組的行列方向互換),例如:
a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.transpose()
print(b)
[[1 4]
[2 5]
[3 6]]
注意:transpose函數也可使用np.transpose(a)調用。
矩陣乘法可使用@或dot函數實現:
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = a@b
print(c)
[[19 22]
[43 50]]
d = np.dot(a, b)
print(d)
[[19 22]
[43 50]]
四、多維數組
在多元數組中,我們需要特別注意數組的索引方式。例如,對於一個三維數組a,要取其中的(0,1,1)位置元素,可以使用a[0][1][1]、a[0,1,1]等方式。
多維數組的創建可以參考上述創建數組的方式。另外,reshape函數也可用於多維數組的形狀變換。
五、專用函數
numpy庫提供了大量方便數組操作的專用函數,例如對於下面的一維數組:
a = np.array([1, 2, 3, 4, 5])
可以使用np.mean計算平均值、np.std計算標準差等專用函數:
m = np.mean(a)
print(m) #3.0
s = np.std(a)
print(s) #1.4142...
同時,在多元數組上,這些函數也有着相應的表現,例如:
a = np.array([[1, 2, 3], [4, 5, 6]])
m = np.mean(a)
print(m) #3.5
s = np.std(a, axis=0)
print(s) #[1.5 1.5 1.5]
上例中,np.std函數在axis=0(即列方向)計算標準差,返回數組中每一列的標準差。
六、文件讀寫
numpy庫提供了方便的讀寫全局變量的numpy.ndarray類型(即數組)的函數,其中最基本的函數是np.save和np.load,可以將文件保存為二進制形式文件和重新加載文件。例如,對於以下二維數組:
a = np.array([[1, 2, 3], [4, 5 ,6]])
可以使用np.save保存為文件:
np.save('a.npy', a)
然後使用np.load重新加載存儲為文件的數組:
b = np.load('a.npy')
print(b)
[[1, 2, 3],
[4, 5, 6]]
注意:保存的文件具有二進制格式,因此在加載時不需要定義數組形狀
結語
綜上所述,numpy中的np.array函數是Python中處理高維數值計算的重要庫之一,具有多種方便的數據結構和操作,可以方便地構建和操作數組。希望本文能夠對讀者對np.array的理解和實踐有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/159098.html