首頁  >  文章  >  後端開發  >  從入門到精通:掌握numpy庫的基本操作與常用功能

從入門到精通:掌握numpy庫的基本操作與常用功能

王林
王林原創
2024-01-19 10:33:171336瀏覽

從入門到精通:掌握numpy庫的基本操作與常用功能

numpy庫是Python中最受歡迎的科學計算庫之一,它提供了對多維數組和矩陣的快速操作,並且支援多種數學操作、線性代數運算以及隨機數生成等功能。掌握numpy的基本操作和常用功能不僅可以提高資料分析和科學計算的效率,還可以輔助資料視覺化和機器學習等領域的開發。

本文將介紹numpy庫的基本操作和常用功能,包括numpy數組的創建、索引和切片、數組運算、統計函數、線性代數運算以及隨機數的生成。同時提供具體程式碼範例,幫助讀者快速上手。

1. 建立numpy陣列

建立numpy陣列最基本的方法是使用numpy.array()函數,該函數接收一個列表或元組作為參數,並建立一個numpy陣列。以下是一個簡單的範例:

import numpy as np

a = np.array([1, 2, 3])
print(a)

輸出結果為:

[1 2 3]

除此之外,numpy還有一些其他的建立陣列的函數,例如:

  • numpy.zeros() 用於建立全0的陣列
  • numpy.ones() 用於建立全1的陣列
  • numpy.random.rand() 用於建立隨機數的陣列

2. 索引和切片

與Python中的清單類似,numpy陣列也可以使用索引和切片操作。以下是幾個範例:

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]

注意,在numpy陣列中,切片操作傳回的是原始陣列的一個視圖而非一個新的陣列。因此,在對切片進行修改時,原始數組也會隨之改變。

3. 陣列運算

numpy陣列支援多種數學運算,例如加、減、乘、除,以及多項式函數、三角函數等。以下是一些常見的陣列運算:

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]]

4. 統計函數

numpy也提供了大量的統計函數,例如求和、平均值、標準差、最大值和最小值等。以下是一些常見的統計函數:

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))  # 标准差,输出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]

5. 線性代數運算

numpy提供了豐富的線性代數運算函數,例如矩陣乘法、行列式計算、特徵值和特徵向量的計算等。以下是一些常見的線性代數運算:

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))  # 行列式计算,输出-2.0000000000000004

d = np.array([[1, 2], [2, 1]])
print(np.linalg.eig(d))  # 特征值和特征向量的计算,输出(array([ 3., -1.]), array([[ 0.70710678, -0.70710678], [ 0.70710678,  0.70710678]]))

6. 隨機數產生

numpy提供了多種隨機函數,例如產生隨機整數、產生常態分佈隨機數、產生指定形狀的隨機數組等。以下是一些常見的隨機函數:

import numpy as np

print(np.random.randint(0, 10, 5))  # 生成5个0到10之间的随机整数,输出[1 5 8 7 3]

print(np.random.normal(0, 1, 5))  # 生成5个均值为0,方差为1的正态分布随机数,输出[-0.60690706  2.01738925 -0.58946246 -1.42619268  0.72589716]

print(np.random.rand(3, 4))  # 生成3行4列的随机数组,输出[[0.9004391  0.50630644 0.31150836 0.90425598] [0.13734967 0.53890228 0.20053875 0.00617321] [0.96756345 0.80763172 0.21116666 0.09858394]]

以上是numpy庫的基本操作和常用功能的介紹和程式碼範例,希望本文能幫助讀者快速上手並精通numpy的使用。

以上是從入門到精通:掌握numpy庫的基本操作與常用功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn