柚子快報(bào)邀請(qǐng)碼778899分享:NumPy零基礎(chǔ)快速入門及實(shí)例
柚子快報(bào)邀請(qǐng)碼778899分享:NumPy零基礎(chǔ)快速入門及實(shí)例
NumPy 零基礎(chǔ)快速入門及實(shí)例
NumPy(Numerical Python)是 Python 進(jìn)行 科學(xué)計(jì)算 和 數(shù)據(jù)處理 的核心庫(kù)。它提供了 高效的多維數(shù)組(ndarray),并支持 矩陣運(yùn)算、線性代數(shù)、統(tǒng)計(jì)分析、隨機(jī)數(shù)生成 等操作,是數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的基礎(chǔ)工具。
本教程適合 零基礎(chǔ)學(xué)習(xí) NumPy,涵蓋:
NumPy 的安裝與基本操作
ndarray 數(shù)組的創(chuàng)建與操作
數(shù)組索引、切片與變形
數(shù)組運(yùn)算(數(shù)學(xué)、統(tǒng)計(jì)、線性代數(shù))
NumPy 高級(jí)技巧與應(yīng)用實(shí)例
1. NumPy 安裝
如果你的 Python 還沒有安裝 NumPy,可以使用 pip 進(jìn)行安裝:
pip install numpy
然后在 Python 中導(dǎo)入:
import numpy as np
2. NumPy 基本數(shù)據(jù)結(jié)構(gòu):ndarray
NumPy 的核心數(shù)據(jù)結(jié)構(gòu)是 ndarray(N-dimensional Array,多維數(shù)組),它比 Python 的列表(list)更高效,占用更少的內(nèi)存,并支持向量化計(jì)算。
2.1 創(chuàng)建 ndarray 數(shù)組
(1)從 Python 列表創(chuàng)建
import numpy as np
# 創(chuàng)建一維數(shù)組
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)
# 創(chuàng)建二維數(shù)組
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)
(2)使用 NumPy 內(nèi)置函數(shù)創(chuàng)建
# 創(chuàng)建全零數(shù)組
zeros_arr = np.zeros((3, 3)) # 3x3 矩陣
print(zeros_arr)
# 創(chuàng)建全一數(shù)組
ones_arr = np.ones((2, 4)) # 2x4 矩陣
print(ones_arr)
# 創(chuàng)建指定數(shù)值的數(shù)組
full_arr = np.full((2, 3), 7) # 2x3 矩陣,每個(gè)元素都是 7
print(full_arr)
# 創(chuàng)建等差數(shù)組(類似 range)
range_arr = np.arange(0, 10, 2) # [0, 2, 4, 6, 8]
print(range_arr)
# 創(chuàng)建等間隔數(shù)組
linspace_arr = np.linspace(0, 1, 5) # 生成 5 個(gè)均勻分布的數(shù)值
print(linspace_arr)
# 創(chuàng)建隨機(jī)數(shù)組
random_arr = np.random.rand(3, 3) # 3x3 矩陣,每個(gè)元素是 [0,1) 之間的隨機(jī)數(shù)
print(random_arr)
3. ndarray 的屬性
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape) # 矩陣形狀 (2, 3)
print(arr.ndim) # 維度數(shù)目 2
print(arr.size) # 元素總個(gè)數(shù) 6
print(arr.dtype) # 數(shù)據(jù)類型 int64
print(arr.itemsize) # 單個(gè)元素所占字節(jié)
4. NumPy 數(shù)組索引與切片
4.1 一維數(shù)組索引
arr = np.array([10, 20, 30, 40, 50])
print(arr[0]) # 訪問(wèn)第一個(gè)元素 10
print(arr[-1]) # 訪問(wèn)最后一個(gè)元素 50
4.2 多維數(shù)組索引
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr[0, 1]) # 第一行第二列的元素 2
print(arr[1, :]) # 訪問(wèn)第二行 [4, 5, 6]
print(arr[:, 2]) # 訪問(wèn)第三列 [3, 6]
4.3 切片
arr = np.array([10, 20, 30, 40, 50])
print(arr[1:4]) # [20, 30, 40]
print(arr[:3]) # [10, 20, 30]
print(arr[::2]) # [10, 30, 50](步長(zhǎng)為 2)
5. 數(shù)組變形與合并
5.1 數(shù)組變形
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 變?yōu)?3x2 形狀
reshaped_arr = arr.reshape(3, 2)
print(reshaped_arr)
# 展平數(shù)組
flattened_arr = arr.flatten()
print(flattened_arr) # [1 2 3 4 5 6]
5.2 數(shù)組合并
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
# 垂直合并
vstack_arr = np.vstack((arr1, arr2))
print(vstack_arr)
# 水平合并
hstack_arr = np.hstack((arr1, arr2))
print(hstack_arr)
6. 數(shù)組運(yùn)算
6.1 數(shù)學(xué)運(yùn)算
arr = np.array([1, 2, 3, 4])
print(arr + 10) # [11 12 13 14]
print(ar
柚子快報(bào)邀請(qǐng)碼778899分享:NumPy零基礎(chǔ)快速入門及實(shí)例
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。