一、NumPy庫簡介
NumPy(Numerical Python)是一個用於科學計算的Python庫。它提供了一個用於處理大型多維數組和矩陣的高效工具。NumPy庫在數據科學領域是一個重要的庫。
下面是一個簡單的例子,演示了如何使用NumPy庫創建一個一維數組,並對其進行操作:
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr) # 輸出 [1 2 3 4]
# 數組的形狀
print(arr.shape) # 輸出 (4,)
# 數組的元素個數
print(arr.size) # 輸出 4
# 數組元素的數據類型
print(arr.dtype) # 輸出 int64
二、創建數組
使用NumPy庫可以很方便地創建數組。可以使用numpy.array函數創建數組,也可以從列表或元組中創建數組:
import numpy as np
# 從列表中創建數組
arr1 = np.array([1, 2, 3, 4])
print(arr1) # 輸出 [1 2 3 4]
# 從元組中創建數組
arr2 = np.array((1, 2, 3, 4))
print(arr2) # 輸出 [1 2 3 4]
使用NumPy庫也可以創建特定的數組,例如,可以使用numpy.zeros函數創建全零數組,numpy.ones函數創建全一數組,numpy.random.rand函數創建隨機數組:
import numpy as np
# 創建全零數組
zeros_arr = np.zeros(3)
print(zeros_arr) # 輸出 [0. 0. 0.]
# 創建全一數組
ones_arr = np.ones(3)
print(ones_arr) # 輸出 [1. 1. 1.]
# 創建隨機數組
rand_arr = np.random.rand(3)
print(rand_arr) # 輸出 [0.85007557 0.74959504 0.178823]
# 創建指定形狀的數組
arr = np.empty((2, 3))
print(arr) # 輸出 [[1.24441872e-311, 9.58487353e-322, 0.00000000e+000],
# [0.00000000e+000, 6.95348796e-309, 7.49303579e-067]]
三、數組索引和切片
與Python中列表和元組的索引和切片類似,使用NumPy庫也可以對數組進行相應的操作。可以使用整數索引、切片和布爾索引來選擇數組的子集。
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
# 整數索引
print(arr[0]) # 輸出 1
print(arr[2]) # 輸出 3
# 切片
print(arr[3:6]) # 輸出 [4 5 6]
print(arr[:5]) # 輸出 [1 2 3 4 5]
print(arr[5:]) # 輸出 [ 6 7 8 9 10]
# 布爾索引
arr_bool = arr > 5
print(arr_bool) # 輸出 [False False False False False True True True True True]
print(arr[arr_bool]) # 輸出 [ 6 7 8 9 10]
四、數組操作
NumPy庫提供了許多有用的函數來操作數組,例如可以使用numpy.reshape函數改變數組的形狀,numpy.concatenate函數將多個數組合併成一個數組,numpy.copy函數複製數組:
import numpy as np
# 改變數組形狀
arr1 = np.array([1, 2, 3, 4, 5, 6])
reshape_arr = arr1.reshape((2, 3))
print(reshape_arr) # 輸出 [[1 2 3]
# [4 5 6]]
# 合併數組
arr2 = np.array([7, 8, 9])
concatenate_arr = np.concatenate((arr1, arr2))
print(concatenate_arr) # 輸出 [1 2 3 4 5 6 7 8 9]
# 複製數組
copy_arr = arr1.copy()
copy_arr[0] = 0
print(copy_arr) # 輸出 [0 2 3 4 5 6]
print(arr1) # 輸出 [1 2 3 4 5 6]
五、數學函數
NumPy庫提供了許多常用的數學函數,如三角函數、指數函數、對數函數等,以及統計函數,如平均值、方差、標準差等。
import numpy as np
x = np.array([0, np.pi/2, np.pi])
# 三角函數
print(np.sin(x)) # 輸出 [0. 1. 0. ]
print(np.cos(x)) # 輸出 [ 1.000000e+00 6.123234e-17 -1.000000e+00]
# 指數函數和對數函數
x = np.array([1, 2, 3])
print(np.exp(x)) # 輸出 [ 2.71828183 7.3890561 20.08553692]
print(np.log(x)) # 輸出 [0. 0.693147 1.098612]
# 統計函數
arr = np.array([1, 2, 3, 4, 5])
print(np.mean(arr)) # 輸出 3.0
print(np.var(arr)) # 輸出 2.0
print(np.std(arr)) # 輸出 1.41421356
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/206218.html