一、Numpy概述
Numpy是Python科學計算中的一個重要的庫,該庫提供了一個針對多維數組的快速索引和執行數學運算的工具集。Numpy是科學計算的基礎,很多其他的科學計算庫都是在Numpy的基礎上構建的。
如果你打算在Python中進行科學計算、數據分析或機器學習,那麼你應該首先了解和學習Numpy。
下面,我們將從一些重要的方面詳細地介紹Numpy的使用和實踐。
二、Numpy的數據類型
Numpy中的數組對象稱為ndarray。ndarray是Python中一個N維數組類型,它將數據存儲為同類型的塊,而且每個塊的類型都相同。Numpy中的數組數據與Python本身的數組結構有所不同。Python中的數組結構用於存儲同類型數據的順序結構,Numpy中的數組具有整潔數學性質,這些特性使得它非常適合於科學計算。
Numpy數組可以是一維數組、二維數組或n維數組,數組中的每個元素必須屬於同一數據類型。
下面展示了如何創建一個簡單的一維數組:
import numpy as np
a = np.array([1,2,3])
print(a)
上述代碼將創建一個一維數組,輸出結果為[1 2 3]。
三、Numpy數組的運算
Numpy中數組的運算與Python的列表不同,因為它遵循的是向量化的原則。
以下是一些運算的示例:
import numpy as np
# 數組相加
a = np.array([1,2,3])
b = np.array([4,5,6])
print(a + b)
# 數組相乘
a = np.array([1,2,3])
b = np.array([4,5,6])
print(a * b)
# 數組矩陣積
a = np.array([[1,2], [3,4]])
b = np.array([[5,6], [7,8]])
print(a.dot(b))
# 數組轉置
a = np.array([[1,2], [3,4]])
print(a.T)
上述代碼將輸出以下結果:
[5 7 9]
[ 4 10 18]
[[19 22]
[43 50]]
[[1 3]
[2 4]]
四、Numpy的數組索引和切片
Numpy數組的索引和切片與Python列表的索引和切片非常相似。可以對一維和多維數組進行索引和切片。
以下是一些示例:
import numpy as np
# 定義一個二維數組
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a)
# 獲取第一行
print(a[0])
# 獲取第一行第二列的值
print(a[0][1])
# 切片操作
print(a[0:2])
上述代碼將輸出以下結果:
[[1 2 3]
[4 5 6]
[7 8 9]]
[1 2 3]
2
[[1 2 3]
[4 5 6]]
五、Numpy的快速行列操作
需要快速的執行常見操作,如轉秩和更改維度時,Numpy提供了一些非常有用的函數和方法。
以下是一些快速行列操作的示例:
import numpy as np
# 創建一個二維數組
a = np.array([[1,2,3],[4,5,6]])
print(a)
# 轉置數組
print(np.transpose(a))
# 通過reshape改變數組的形狀
b = a.reshape(3,2)
print(b)
上述代碼將輸出以下結果:
[[1 2 3]
[4 5 6]]
[[1 4]
[2 5]
[3 6]]
[[1 2]
[3 4]
[5 6]]
六、Numpy數組的邏輯運算
使用Numpy數組可以進行各種邏輯和算術運算。
下面是一些邏輯運算的示例:
import numpy as np
a = np.array([1,2,3,4,5])
print(a > 2)
print(a == 2)
# 邏輯運算
print(np.logical_and(a > 2, a 2))
上述代碼將輸出以下結果:
[False False True True True]
[False True False False False]
[False False True False False]
[ True True False False False]
七、Numpy數組的聚合函數
Numpy還提供了許多在數組上執行聚合操作的函數,如最大值、最小值、平均值等。
以下是一些聚合函數的示例:
import numpy as np
a = np.array([1,2,3,4,5])
print(np.max(a)) # 最大值
print(np.min(a)) # 最小值
print(np.mean(a)) # 平均值
上述代碼將輸出以下結果:
5
1
3.0
原創文章,作者:ATKEX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/325293.html