一、介紹
在數據科學中,我們面臨著很多需要使用多維數組的數據處理任務, 這時候如果使用Python自帶的列表可能會變得很麻煩。這時候,我們可以考慮使用Numpy庫。Numpy是Python中用於數值計算的一個重要庫,它提供了一個稱為Ndarray的N維數組對象,以及許多用於數組操作的函數。
二、Numpy數組的創建與初始化
Numpy將一個Python列表或元組轉換成Ndarray的方法非常簡單。對於一維數組,只需要將一個列表作為參數傳遞給Numpy即可。例如,下面創建一個包含5個元素的一維數組:
import numpy as np a = np.array([1, 2, 3, 4, 5])
對於多維數組,需要將一個列表嵌套在另一個列表中傳遞給Numpy。例如,下面創建一個二維數組:
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
除此之外,還有一些可以快速生成Numpy數組的函數,例如,使用Numpy內置的zeros()函數可以生成一個指定大小的、值全為0的數組,常常用來初始化數組:
c = np.zeros((3, 4))
這將生成一個3×4的數組,所有元素的值都為0。
三、Numpy數組的索引和切片
Numpy數組的索引和Python列表類似,使用方括弧「[]」進行訪問,不同的是,可以使用逗號分隔的索引元組來訪問多維數組。例如,對於上面創建的b數組,我們可以通過以下方式訪問元素:
print(b[0, 1]) # 輸出結果為2,表示第一個元素的第二個元素值
同時,Numpy還支持切片操作。和Python中的列表一樣,使用「:」進行切片。例如,下面將b數組中的第1、2行第2、3列取出來:
print(b[1:3, 1:3]) # 輸出結果為array([[5, 6], [8, 9]])
四、Numpy數組的運算
對於大多數的數學和科學運算,Numpy數組都提供了簡單而又高效的操作。對於同形狀的數組,加減乘除等運算符的操作都會被作用於對應的元素。例如,下面的代碼演示如何將兩個同形狀的數組相加:
a = np.array([1, 2, 3, 4, 5]) b = np.array([6, 7, 8, 9, 10]) c = a + b print(c) # 輸出結果為array([ 7, 9, 11, 13, 15])
此外,Numpy還提供了一些常用的計算函數,例如求平均數和方差等。以下是幾個常用的計算函數及其用法:
a = np.array([1, 2, 3, 4, 5]) mean = np.mean(a) # 求平均數 std = np.std(a) # 求標準差 max = np.max(a) # 求最大值 min = np.min(a) # 求最小值
五、Numpy的廣播機制
Numpy的廣播機制是指在進行算術運算時,Numpy可以將不同大小的數組進行自動重複以匹配形狀,從而進行計算。這種功能可以在不複製數據的情況下進行通用函數的向量化操作,從而提高了數組操作的效率。例如,下面演示Numpy的廣播機制:
a = np.array([1, 2, 3]) b = 2 c = a + b print(c) # 輸出結果為array([3, 4, 5])
可以看到,Numpy可以自動將標量值b擴展到與a數組的形狀匹配,然後進行加法運算。
六、Numpy數組保存和讀取
Numpy數組可以使用save()函數保存到磁碟中,並且可以使用load()函數重新載入數組。例如,下面演示如何將一個數組保存到磁碟中:
a = np.array([1, 2, 3, 4, 5]) np.save('a.npy', a)
接著,可以使用load()函數重新載入該數組:
b = np.load('a.npy') print(b) # 輸出結果為array([1, 2, 3, 4, 5])
七、總結
Numpy是Python中最常用的數值計算庫之一,它的Ndarray數組對象提供了便捷高效的多維數組操作方法,無論是在科學計算、數據分析還是機器學習等領域都有廣泛的應用。學習和掌握Numpy的操作方法將有助於我們更便捷地完成複雜的數據處理任務。
原創文章,作者:TYFUW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/331362.html