一、NumPy介紹
NumPy是一個基於Python語言的開源科學計算庫,重點是支持數組計算。NumPy包含許多工具和函數,可以輕鬆地構建數組並使用它們來進行高效的數值計算。它是Python進行科學計算、數據分析和數據可視化的基礎之一。與純Python的列表相比,NumPy數組能夠存儲和處理更多的數據,是Python進行數據分析和處理時候的首選工具。
二、創建NumPy數組
使用NumPy創建數組可以方便而且非常靈活,可以按照特定的類型來創建、修改、處理和操作數組。使用NumPy創建數組有三種主要的方法:
1、將Python列錶轉換為NumPy數組。
import numpy as np
lst = [1, 2, 3, 4, 5]
arr = np.array(lst)
print(arr)
2、使用NumPy內置的函數創建特定類型的數組。
import numpy as np
# 創建5行3列的全為0的數組
arr1 = np.zeros((5, 3))
# 創建5行3列的全為1的數組
arr2 = np.ones((5, 3))
# 創建5行3列的隨機浮點數數組
arr3 = np.random.rand(5, 3)
print(arr1)
print(arr2)
print(arr3)
3、使用NumPy的arange()方法創建數字序列。使用reshape()方法可以將一維數組變成任何形狀的數組。
import numpy as np
# 創建0到9的數字序列
arr1 = np.arange(10)
# 創建0到9,並將其變成5行2列的二維數組。
arr2 = np.arange(10).reshape(5, 2)
print(arr1)
print(arr2)
三、NumPy數組的基本操作
可以使用NumPy數組的基本操作進行數據的處理和運算,包括索引、切片、數組運算、聚合和重構。使用NumPy數組進行基本操作能夠提高代碼的效率和簡化操作的複雜程度。
1、索引和切片
與Python列表類似,可以使用整數索引和切片來訪問和處理數組的元素。NumPy的數組從0開始計數,數字必須小於數組的長度。
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr[0]) #輸出1
print(arr[0:3]) #輸出[1, 2, 3]
2、數組運算
使用NumPy的數組運算可以進行各種數學運算。所有算術運算符都可以在數組上操作,比如加、減、乘、除,以及對數、指數、三角函數、矩陣運算等。
import numpy as np
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([6, 7, 8, 9, 10])
print(arr1+arr2) #輸出[ 7 9 11 13 15]
print(arr1*arr2) #輸出[ 6 14 24 36 50]
print(np.sin(arr1)) #輸出[ 0.84147098 0.90929743 0.14112001 -0.7568025 -0.95892427]
3、聚合函數
聚合函數用於描述數組之間的統計關係。其中最基本的聚合函數包括sum、mean、min、max、std、var、argmin、argmax等。這些函數能夠方便地計算數組的統計信息,可以幫助我們更好地分析數據。
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(np.sum(arr)) #輸出15
print(np.mean(arr)) #輸出3.0
print(np.max(arr)) #輸出5
print(np.min(arr)) #輸出1
print(np.std(arr)) #輸出1.4142135623730951
print(np.argmax(arr)) #輸出4
四、多維數組的創建與運算
在NumPy中,可以輕鬆地定義和使用多維數組。多維數組可以使用相同的方法進行索引、切片和運算,在處理更大型、更靈活的數據時非常有用。使用NumPy進行多維數組的操作能夠更好地進行數據分析和處理。
1、創建多維數組
可以使用多種方式創建多維數組,如使用Python列表、數組、隨機數等。可以使用NumPy提供的ndarray對象來創建多維數組。可以指定維數和大小,並使用類型關鍵字指定類型。
import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
print(arr)
2、運算
多維數組也可以進行標量計算和數組計算,比如加、減、乘、除、矩陣乘法、轉置、複製等操作。可以使用相同的操作符運算符進行操作。
import numpy as np
arr1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr2 = np.array([[2, 2, 2], [3, 3, 3], [4, 4, 4]])
print(arr1 + arr2)
print(arr1.dot(arr2)) #矩陣乘法
五、使用NumPy進行數據分析和預處理
除了基本的數組操作和運算外,NumPy還提供了一些很方便的方法和函數來進行數據分析和預處理。比如,讀取和寫入數據、條件篩選、排序、去重、合併、分組和聚合等。使用NumPy進行數據處理能夠使代碼更加簡化。
1、讀取和寫入數據
我們可以使用NumPy讀取文件中的數據,並寫入到文件中。使用genfromtxt()方法可以讀取csv格式的文件,並將其轉換為NumPy數組。如果需要將NumPy數組寫入到文件中,可以使用savetxt()方法。
import numpy as np
# 讀取csv文件
data = np.genfromtxt('data.csv', delimiter=',')
# 輸出讀取到的數據
print(data)
# 將NumPy數組寫入到csv文件中
np.savetxt('newdata.csv', data, delimiter=',')
2、條件篩選、排序、去重和聚合
使用NumPy的條件篩選、排序、去重和聚合,能夠方便地將數據進行統計分析和預處理,使得分析數據更加方便和靈活。在處理數據時,可以根據需要使用靈活的方法。
import numpy as np
# 創建一個隨機數組
arr = np.random.randint(0, 10, size=10)
# 打印出這個數組
print(arr)
# 篩選出大於5的數
print(arr[arr>5])
# 將該數組排序
print(np.sort(arr))
# 去重
print(np.unique(arr))
# 計算統計信息
print(np.mean(arr))
print(np.std(arr))
六、總結
NumPy是Python用於科學計算和數據分析的基礎之一。在分析數據時,NumPy提供了有助於處理多維數組的函數和工具,諸如索引、切片、運算符和聚合函數等等。通過它,我們可以輕鬆地創建、處理和操作多維數組,優化代碼效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/193681.html