NumPy(Numerical Python)是Python中用于科學計算的核心庫之一,提供了高性能的多維數組對象和用于操作這些數組的工具。NumPy廣泛應用于數據分析、機器學習、圖像處理等領域。本文將介紹NumPy的主要使用方法,幫助讀者快速掌握其核心功能。
在使用NumPy之前,首先需要安裝它??梢酝ㄟ^以下命令安裝NumPy:
pip install numpy
安裝完成后,可以在Python腳本中導入NumPy:
import numpy as np
通常,我們將NumPy導入為np
,以便在代碼中更方便地使用。
NumPy的核心數據結構是ndarray
,即多維數組。以下是幾種常見的創建數組的方法。
可以通過Python列表創建NumPy數組:
import numpy as np
# 一維數組
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)
# 二維數組
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)
NumPy提供了多種內置函數來創建特定類型的數組:
np.zeros()
:創建全零數組np.ones()
:創建全一數組np.arange()
:創建等差數組np.linspace()
:創建等間隔數組np.eye()
:創建單位矩陣# 創建全零數組
zeros_arr = np.zeros((3, 3))
print(zeros_arr)
# 創建全一數組
ones_arr = np.ones((2, 4))
print(ones_arr)
# 創建等差數組
range_arr = np.arange(0, 10, 2)
print(range_arr)
# 創建等間隔數組
linspace_arr = np.linspace(0, 1, 5)
print(linspace_arr)
# 創建單位矩陣
eye_arr = np.eye(3)
print(eye_arr)
NumPy提供了np.random
模塊來生成隨機數組:
# 生成隨機數
random_arr = np.random.random((2, 3))
print(random_arr)
# 生成正態分布的隨機數
normal_arr = np.random.normal(0, 1, (3, 3))
print(normal_arr)
可以通過shape
屬性獲取數組的形狀,并通過reshape()
方法改變數組的形狀:
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape) # 輸出 (2, 3)
# 改變數組形狀
reshaped_arr = arr.reshape(3, 2)
print(reshaped_arr)
NumPy數組支持類似于Python列表的索引和切片操作:
arr = np.array([1, 2, 3, 4, 5])
# 索引
print(arr[0]) # 輸出 1
# 切片
print(arr[1:4]) # 輸出 [2, 3, 4]
對于多維數組,可以使用逗號分隔的索引:
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 獲取第二行第三列的元素
print(arr[1, 2]) # 輸出 6
# 獲取第一列
print(arr[:, 0]) # 輸出 [1, 4]
NumPy支持對數組進行逐元素運算:
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 加法
print(arr1 + arr2) # 輸出 [5, 7, 9]
# 乘法
print(arr1 * arr2) # 輸出 [4, 10, 18]
# 平方
print(arr1 ** 2) # 輸出 [1, 4, 9]
NumPy的廣播機制允許在不同形狀的數組之間進行運算:
arr = np.array([[1, 2, 3], [4, 5, 6]])
scalar = 2
# 數組與標量相加
print(arr + scalar) # 輸出 [[3, 4, 5], [6, 7, 8]]
NumPy提供了豐富的數學函數和統計方法:
np.sum()
:求和np.mean()
:求平均值np.max()
:求最大值np.min()
:求最小值np.std()
:求標準差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
np.sin()
:正弦函數np.cos()
:余弦函數np.exp()
:指數函數np.log()
:自然對數函數arr = np.array([0, np.pi / 2, np.pi])
# 正弦函數
print(np.sin(arr)) # 輸出 [0., 1., 0.]
# 指數函數
print(np.exp(arr)) # 輸出 [1., 4.81047738, 23.14069263]
# 自然對數函數
print(np.log(arr + 1)) # 輸出 [0., 0.69314718, 1.1442228]
可以使用np.concatenate()
、np.vstack()
和np.hstack()
來拼接數組:
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
# 沿行拼接
print(np.concatenate((arr1, arr2), axis=0))
# 沿列拼接
print(np.concatenate((arr1, arr2), axis=1))
# 垂直拼接
print(np.vstack((arr1, arr2)))
# 水平拼接
print(np.hstack((arr1, arr2)))
可以使用np.split()
、np.vsplit()
和np.hsplit()
來分割數組:
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 沿行分割
print(np.split(arr, 3, axis=0))
# 沿列分割
print(np.split(arr, 3, axis=1))
# 垂直分割
print(np.vsplit(arr, 3))
# 水平分割
print(np.hsplit(arr, 3))
NumPy提供了np.save()
和np.load()
函數來保存和加載數組:
arr = np.array([1, 2, 3, 4, 5])
# 保存數組
np.save('array.npy', arr)
# 加載數組
loaded_arr = np.load('array.npy')
print(loaded_arr)
本文介紹了NumPy的基本使用方法,包括數組的創建、操作、統計與數學函數、拼接與分割以及文件操作。NumPy是Python科學計算的基礎庫,掌握其使用方法對于進行數據分析、機器學習等任務至關重要。希望本文能幫助讀者快速上手NumPy,并在實際項目中靈活運用。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。