numpy庫(kù)是Python中最受歡迎的科學(xué)計(jì)算庫(kù)之一,它提供了對(duì)多維數(shù)組和矩陣的快速操作,并且支持多種數(shù)學(xué)操作、線性代數(shù)運(yùn)算以及隨機(jī)數(shù)生成等功能。掌握numpy的基本操作和常用功能不僅可以提高數(shù)據(jù)分析和科學(xué)計(jì)算的效率,還可以輔助數(shù)據(jù)可視化和機(jī)器學(xué)習(xí)等領(lǐng)域的開(kāi)發(fā)。
本文將介紹numpy庫(kù)的基本操作和常用功能,包括numpy數(shù)組的創(chuàng)建、索引和切片、數(shù)組運(yùn)算、統(tǒng)計(jì)函數(shù)、線性代數(shù)運(yùn)算以及隨機(jī)數(shù)的生成。同時(shí)提供具體代碼示例,幫助讀者快速上手。
1. 創(chuàng)建numpy數(shù)組
創(chuàng)建numpy數(shù)組的最基本方法是使用numpy.array()函數(shù),該函數(shù)接收一個(gè)列表或元組作為參數(shù),并創(chuàng)建一個(gè)numpy數(shù)組。下面是一個(gè)簡(jiǎn)單的示例:
import numpy as np a = np.array([1, 2, 3]) print(a)
登錄后復(fù)制
輸出結(jié)果為:
[1 2 3]
登錄后復(fù)制
除此之外,numpy還有一些其他的創(chuàng)建數(shù)組的函數(shù),例如:
numpy.zeros() 用于創(chuàng)建全0的數(shù)組numpy.ones() 用于創(chuàng)建全1的數(shù)組numpy.random.rand() 用于創(chuàng)建隨機(jī)數(shù)的數(shù)組
2. 索引和切片
與Python中的列表類(lèi)似,numpy數(shù)組也可以使用索引和切片操作。下面是幾個(gè)示例:
import numpy as np a = np.array([1, 2, 3]) print(a[0]) # 輸出1 print(a[-1]) # 輸出3 b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(b[0][1]) # 輸出2 c = np.array([1, 2, 3, 4, 5, 6]) print(c[1:4]) # 輸出[2 3 4]
登錄后復(fù)制
注意,在numpy數(shù)組中,切片操作返回的是原始數(shù)組的一個(gè)視圖而非一個(gè)新的數(shù)組。因此,在對(duì)切片進(jìn)行修改時(shí),原始數(shù)組也會(huì)隨之發(fā)生變化。
3. 數(shù)組運(yùn)算
numpy數(shù)組支持多種數(shù)學(xué)運(yùn)算,例如加、減、乘、除,以及多項(xiàng)式函數(shù)、三角函數(shù)等。下面是一些常見(jiàn)的數(shù)組運(yùn)算:
import numpy as np a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) print(a + b) # 輸出[5 7 9] print(a - b) # 輸出[-3 -3 -3] print(a * b) # 輸出[4 10 18] print(b / a) # 輸出[4. 2.5 2. ] c = np.array([[1, 2], [3, 4]]) d = np.array([[5, 6], [7, 8]]) print(c.dot(d)) # 矩陣乘法,輸出[[ 19 22] [ 43 50]]
登錄后復(fù)制
4. 統(tǒng)計(jì)函數(shù)
numpy還提供了大量的統(tǒng)計(jì)函數(shù),例如求和、均值、標(biāo)準(zhǔn)差、最大值和最小值等。下面是一些常見(jiàn)的統(tǒng)計(jì)函數(shù):
import numpy as np a = np.array([1, 2, 3, 4]) print(np.sum(a)) # 求和,輸出10 print(np.mean(a)) # 均值,輸出2.5 print(np.std(a)) # 標(biāo)準(zhǔn)差,輸出1.118033988749895 print(np.max(a)) # 最大值,輸出4 print(np.min(a)) # 最小值,輸出1 b = np.array([[1, 2], [3, 4]]) print(np.sum(b, axis=0)) # 按列求和,輸出[4 6] print(np.sum(b, axis=1)) # 按行求和,輸出[3 7]
登錄后復(fù)制
5. 線性代數(shù)運(yùn)算
numpy提供了豐富的線性代數(shù)運(yùn)算函數(shù),例如矩陣乘法、行列式計(jì)算、特征值和特征向量的計(jì)算等。下面是一些常見(jiàn)的線性代數(shù)運(yùn)算:
import numpy as np a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6], [7, 8]]) print(np.dot(a, b)) # 矩陣乘法,輸出[[19 22] [43 50]] c = np.array([[1, 2], [3, 4]]) print(np.linalg.det(c)) # 行列式計(jì)算,輸出-2.0000000000000004 d = np.array([[1, 2], [2, 1]]) print(np.linalg.eig(d)) # 特征值和特征向量的計(jì)算,輸出(array([ 3., -1.]), array([[ 0.70710678, -0.70710678], [ 0.70710678, 0.70710678]]))
登錄后復(fù)制
6. 隨機(jī)數(shù)生成
numpy提供了多種隨機(jī)函數(shù),例如生成隨機(jī)整數(shù)、生成正態(tài)分布隨機(jī)數(shù)、生成指定形狀的隨機(jī)數(shù)組等。下面是一些常見(jiàn)的隨機(jī)函數(shù):
import numpy as np print(np.random.randint(0, 10, 5)) # 生成5個(gè)0到10之間的隨機(jī)整數(shù),輸出[1 5 8 7 3] print(np.random.normal(0, 1, 5)) # 生成5個(gè)均值為0,方差為1的正態(tài)分布隨機(jī)數(shù),輸出[-0.60690706 2.01738925 -0.58946246 -1.42619268 0.72589716] print(np.random.rand(3, 4)) # 生成3行4列的隨機(jī)數(shù)組,輸出[[0.9004391 0.50630644 0.31150836 0.90425598] [0.13734967 0.53890228 0.20053875 0.00617321] [0.96756345 0.80763172 0.21116666 0.09858394]]
登錄后復(fù)制
以上是numpy庫(kù)的基本操作和常用功能的介紹和代碼示例,希望本文能夠幫助讀者快速上手并精通numpy的使用。






