在數據分析與機器學習領域,Python的NumPy庫是必不可少的工具。本文將從多個方面來介紹NumPy在數據操作中的應用,並且提供代碼示例。
一、NumPy簡介
NumPy是Python語言的一個擴展庫,支持多維數組和矩陣運算。NumPy提供了大量的數學函數和運算符,可以在整個數組上進行運算,而不需要使用循環。NumPy還提供了大量的API,例如排序、統計、線性代數等等。NumPy是科學計算和數據處理工作的基礎。
二、NumPy數組的創建
NumPy數組是一種通用的數據結構,可以存儲任意的數字、文本或者Python對象等等。NumPy數組可以使用多種方式進行創建,包括從Python列表、元組、數組等等。
1、從Python列表創建NumPy數組
import numpy as np
lst = [1, 2, 3, 4, 5]
arr = np.array(lst)
print(arr)
2、使用arange函數創建NumPy數組
arr = np.arange(0, 10, 2)
print(arr)
3、使用linspace函數創建NumPy數組
arr = np.linspace(0, 1, 11)
print(arr)
三、NumPy數組的運算
NumPy可以在整個數組上進行運算,而不需要循環,速度非常快。NumPy數組支持算術運算、邏輯運算、矩陣運算和統計運算等等。
1、算術運算
a = np.array([1, 2, 3, 4])
b = np.array([5, 6, 7, 8])
print(a + b)
print(a - b)
print(a * b)
print(a / b)
2、邏輯運算
a = np.array([1, 2, 3, 4])
b = np.array([4, 3, 2, 1])
print(a > b)
print(a < b)
3、矩陣運算
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(A.dot(B))
4、統計運算
a = np.array([1, 2, 3, 4])
print(a.sum())
print(a.mean())
print(a.std())
print(a.max())
print(a.min())
四、NumPy數組的切片和索引
NumPy數組的切片和索引方式與Python列表非常類似。切片和索引操作可以用於獲取數組的子集、更改子集中的元素值等等。
1、獲取子集
a = np.array([1, 2, 3, 4, 5])
print(a[1:3])
print(a[:3])
print(a[3:])
2、更改元素值
a = np.array([1, 2, 3, 4, 5])
a[1:3] = 0
print(a)
五、NumPy數組的形狀和軸
NumPy數組的形狀由軸的數量和每個軸上的長度組成。可以使用shape屬性獲取數組的形狀信息。
1、獲取數組的形狀信息
a = np.array([[1, 2], [3, 4], [5, 6]])
print(a.shape)
2、更改數組的形狀
a = np.array([[1, 2], [3, 4], [5, 6]])
a.reshape((2, 3))
print(a)
六、NumPy數組的廣播
NumPy數組的廣播是一種非常強大的機制,可以使不同形狀的數組進行算術運算。NumPy會自動地將較小的數組廣播到較大的數組的形狀上,然後再進行相應的算術運算。
a = np.array([[1, 2], [3, 4], [5, 6]])
b = np.array([1, 2])
print(a + b)
七、NumPy數組的存儲與讀取
NumPy可以將數組保存到磁盤上,並且可以將數組從磁盤上加載到內存中。這種操作是非常有用的,可以避免重複生成數組,節省時間和內存。
1、存儲數組到磁盤上
a = np.array([[1, 2], [3, 4], [5, 6]])
np.save('a.npy', a)
2、從磁盤上加載數組到內存中
a = np.load('a.npy')
print(a)
八、結語
本文介紹了NumPy在數據操作中的應用,包括數組的創建、運算、切片和索引、形狀和軸、廣播以及存儲與讀取等等。NumPy作為Python的重要擴展庫,對於數據分析工作是非常重要的,深入學習NumPy對於進一步提高數據分析和機器學習的水平有着非常重要的作用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/193147.html