作為Python開發者,你一定知道Numpy,這是Python中數據科學領域使用最廣泛的庫之一。Numpy在科學計算和數據分析方面有着非常多的應用,尤其是在數組操作和線性代數方面表現優異。在本文中,我們將從多個方面來介紹Numpy庫,讓你更加深入地了解這個神器。
一、Numpy的基本介紹
1、Numpy的安裝使用
pip install numpy
使用import語句來載入numpy庫:
import numpy as np
2、Numpy的核心數據結構——ndarray
ndarray是Numpy中最重要的對象之一,它是一個具有相同類型和大小的元素的多維數組。ndarray在內存中的存儲方式和C語言的數組相同,因此可以在Numpy中高效地進行數組運算。下面是一個示例:
a = np.array([1, 2, 3]) # 一維數組
b = np.array([[1, 2, 3], [4, 5, 6]]) # 二維數組
c = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) # 三維數組
二、Numpy中的數組運算
1、Numpy中的算數運算
Numpy中的數組運算與Python中的列表運算非常類似,其間有些微的差異,下面是主要的算數運算:
import numpy as np
# 新建兩個數組
a = np.array([1, 2, 3, 4])
b = np.array([4, 3, 2, 1])
# 數組加法
c1 = a + b
c2 = np.add(a, b)
# 數組減法
d1 = a - b
d2 = np.subtract(a, b)
# 數組乘法
e1 = a * b
e2 = np.multiply(a, b)
# 數組除法
f1 = a / b # 分母中不能為0
f2 = np.divide(a, b)
# 矩陣乘法
g1 = np.dot(a, b)
g2 = a.dot(b)
# 數組取整
h = np.floor([2.1, 3.2, 5.3]) # 向下取整
三、Numpy中的數組索引和切片
1、數組索引
可以通過下標獲取數組的元素,也可以通過整數或者布爾類型的序列來獲取數組中需要的元素:
import numpy as np
# 數組索引
a = np.array([1, 2, 3, 4, 5])
print(a[0]) # 輸出1
print(a[-1]) # 輸出5
# 通過序列獲取元素
b = np.array([1, 2, 3, 4, 5])
c = b[[0, 2, 4]]
print(c) # 輸出[1 3 5]
# 布爾索引
d = np.array([1, 2, 3, 4, 5])
bool_index = d > 2
e = d[bool_index]
print(e) # 輸出[3 4 5]
2、數組切片
可以使用切片來獲取數組中的一部分,與Python中列表類似:
import numpy as np
# 數組切片
f = np.array([1, 2, 3, 4, 5])
print(f[1:3]) # 輸出[2 3]
# 二維數組切片
g = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(g[:2, 1:]) # 輸出[[2 3] [5 6]]
四、Numpy中的數組形狀操作和轉換
1、數組形狀操作
使用shape屬性來獲取數組的形狀,可以使用reshape方法改變數組的形狀。注意,在使用reshape方法改變數組形狀時,原數組的元素個數必須與新形狀中的元素個數相等。
import numpy as np
# 獲取數組形狀
a = np.array([[1, 2], [3, 4], [5, 6]])
print(a.shape) # 輸出(3, 2)
# 改變數組形狀
b = np.array([[1, 2], [3, 4], [5, 6]])
c = b.reshape(2, 3)
print(c) # 輸出[[1 2 3] [4 5 6]]
2、數組轉換
Numpy中的數組可以轉換成Python中的列表,也可以轉換成Pandas中的DataFrame。
import numpy as np
import pandas as pd
# 數組轉換成列表
a = np.array([1, 2, 3])
b = a.tolist()
print(b) # 輸出[1, 2, 3]
# 數組轉換成DataFrame
c = {'a': [1, 2, 3], 'b': [4, 5, 6]}
d = pd.DataFrame(c)
print(d)
五、Numpy中的數組操作
1、數組的合併和拆分
Numpy中可以通過hstack和vstack對多個數組進行合併,也可以通過split和hsplit方法對數組進行拆分。
import numpy as np
# 數組的合併
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.hstack((a, b))
d = np.vstack((a, b))
# 數組的拆分
e = np.array([[1, 2, 3], [4, 5, 6]])
f, g, h = np.split(e, 3, axis=1)
六、Numpy中的隨機數生成
Numpy中內置了一個隨機數生成器,可以通過它來生成符合特定分布的隨機數。
import numpy as np
# 生成均勻分布的隨機數
a = np.random.rand(2, 3)
# 生成正態分布的隨機數
b = np.random.randn(2, 3)
到這裡,我們對Numpy進行了全方面的介紹,如果您對Numpy有更深入的了解,可以去官方文檔https://numpy.org/查看更多細節。
原創文章,作者:OJIG,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/136048.html