一、NumPy簡介
在Python中,NumPy是一個重要的科學計算庫,主要用於處理大型多維數組和矩陣運算。它基於C語言開發,可以提供高效的數據處理能力,並且可以與其他的科學計算庫(如SciPy、pandas等)相互配合,實現更加強大的數據分析和處理能力。
當需要處理大量的數據進行分析時,使用NumPy可以大大提高運算效率,在風格上類似於MATLAB,但是由於Python易於學習和使用,因此成為了科學計算領域中的首選。
二、創建NumPy數組
NumPy中最基本的對象是ndarray(N維數組),它是一個元素相同的多維數組,其中每個元素的類型是相同的。創建NumPy數組的方法有多種。
1.通過Python列表創建NumPy數組
可以通過Python列表創建NumPy數組,使用array()函數
import numpy as np
a = np.array([1, 2, 3])
print(a)
# 輸出結果
# [1 2 3]
創建二維數組:
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
# 輸出結果
# [[1 2 3]
# [4 5 6]]
2.使用NumPy中的函數創建NumPy數組
NumPy還提供了很多函數可以用於創建NumPy數組
arange函數
可以使用arange()函數創建包含一個範圍內的值的數組。它與Python中的range()函數相同。
c = np.arange(0, 10, 2)
print(c)
# 輸出結果
# [0 2 4 6 8]
linspace函數
linspace()函數用於在指定的間隔內創建一定數量的值。
d = np.linspace(0, 10, 5)
print(d)
# 輸出結果
# [ 0. 2.5 5. 7.5 10. ]
3.特殊數組創建方法
NumPy還提供了一些特殊的方法用於創建數組
zeros函數
可以使用zeros()函數創建根據指定大小和類型填充零的數組。
e = np.zeros((2, 3))
print(e)
# 輸出結果
# [[0. 0. 0.]
# [0. 0. 0.]]
ones函數
也可以使用ones()函數創建由指定大小和類型組成的數組,其中所有元素均為1。
f = np.ones((2, 3))
print(f)
# 輸出結果
# [[1. 1. 1.]
# [1. 1. 1.]]
4.隨機數方法
除了上述方法之外,NumPy還提供了一些方法用於生成隨機數值數組。
rand函數
可以使用rand()函數創建指定大小、隨機值的數組。
g = np.random.rand(2, 3)
print(g)
# 輸出結果
# [[0.51824629 0.41711859 0.20066203]
# [0.53951927 0.37666704 0.55126818]]
三、數據分析與處理
1.數組屬性
NumPy的數組對象具有許多有用的屬性。
shape屬性
使用ndarray的shape屬性可以查看數組的維度大小。例如,可以使用shape查看2×3數組的大小。
h = np.array([[1, 2, 3], [4, 5, 6]])
print(h.shape)
# 輸出結果
# (2, 3)
dtype屬性
dtype屬性用於查看數組的數據類型。以下示例顯示數組a是整數,數組b是浮點數。
a = np.array([1, 2, 3])
b = np.array([1.0, 2.5, 4.2])
print(a.dtype)
print(b.dtype)
# 輸出結果
# int64
# float64
2.數組索引和切片
NumPy數組使用索引和切片操作來訪問其元素和一定大小的子數組。
索引操作
可以使用n維數組的索引和切片訪問指定位置的元素。例如,可以使用下面的代碼訪問2×3數組中的第二行第二列元素。
i = np.array([[1, 2, 3], [4, 5, 6]])
print(i[1][1])
# 輸出結果
# 5
切片操作
與Python列表相似,NumPy數組也可以使用切片操作來訪問指定大小的子數組。例如,可以使用下面的代碼截取第二個行到最後一行的所有列。
j = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(j[1:])
# 輸出結果
# [[4 5 6]
# [7 8 9]]
3.數組運算
使用NumPy可以在數組上執行各種數學運算操作。
元素級別的運算
可以對數組中的每個元素執行標準的數學運算。以下示例顯示如何將兩個數組相加。
k = np.array([1, 2, 3])
l = np.array([4, 5, 6])
m = k + l
print(m)
# 輸出結果
# [5 7 9]
矩陣運算
NumPy還支持矩陣運算。以下示例顯示如何使用dot()函數在兩個數組之間執行點積矩陣運算。
n = np.array([[1, 2], [3, 4]])
o = np.array([[5, 6], [7, 8]])
p = np.dot(n, o)
print(p)
#輸出結果
# [[19 22]
# [43 50]]
四、總結
在Python中,使用NumPy可以大大提高數據處理的效率,並且可以進行大規模的數據分析和處理操作。通過本文簡單介紹的創建NumPy數組、數組屬性、數組索引和切片、數組運算等操作,可以初步掌握NumPy在數據處理領域中的重要性和應用價值。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/244926.html