目錄
一.numpy庫簡介與安裝
numpy庫的安裝
二.numpy核心功能
1.矩陣處理
2.數學運算
三.數據的維度與屬性
1.維度管理
2.屬性方法
四.數據類型與存儲范圍
五.矩陣形狀與維度操作
六.數據升維與reshape()方法
一.numpy庫簡介與安裝
NumPy是Python中用于科學計算的核心庫之一,提供高性能的多維數組對象(ndarray
)及工具,適用于數值計算、數據分析和機器學習等領域。
numpy庫的安裝
pip install numpy==1.23.5 -i 鏡像源地址
注意:
若安裝失敗,需檢查Python版本兼容性(如3.7/3.9適配1.x版本,避免2.x版本)。
二.numpy核心功能
1.矩陣處理
- 將數據存儲為矩陣(
ndarray
類型),顯著提升計算速度(底層由C語言實現)。 - 支持高維數據(如二維、三維矩陣),可通過
numpy.array()
轉換列表為矩陣。
2.數學運算
- 集成數學庫功能(如sin, cos, abs等),支持矩陣轉置、求逆、微分等高級運算。
- 對比Python原生列表:numpy提供更豐富的數學操作且計算效率更高。
三.數據的維度與屬性
1.維度管理
- 一維矩陣(如[1 2 3 4 5 6])顯示為無逗號排列。
import numpy as np list =[1,2,3,4,5,6] print(np.array(list))
- 高維矩陣(如三維)需通過索引(如z0, z1)查看不同層級數據。
import numpy as np list =[1,2,3,4,5,6] z=np.array([[list,list,list],[list,list,list],[list,list,list]])
2.屬性方法
- cshape:返回矩陣形狀(如(5,)表示一維5元素)。
x=np.array([1,2,3,4,5]) print(x.shape)
-
(3,3,6)表示三維數據,共有3×3×6個元素
import numpy as np list =[1,2,3,4,5,6] m = np.array([list,list,list]) y= np.array([m,m,m]) print(y.shape)
- ndim:返回維度數(如三維矩陣返回3)。
import numpy as np list =[1,2,3,4,5,6] m = np.array([list,list,list]) y= np.array([m,m,m]) print(y.ndim)
- dtype:查看數據類型(默認int32表示32位整數)。
四.數據類型與存儲范圍
- int8 的最小值為 0(二進制全為 0),最大值為 256(二進制全為 1),實際存儲范圍為 0 到 255。
- 自然界中的亮度值(如 RGB 顏色)范圍是 0 到 255,因此計算機視覺中常用 int8 存儲顏色值。
- int32 的存儲范圍為 0 到 232,適用于大數值存儲;float32 和 float64 用于高精度浮點數(如保留多位小數)。
-
五.矩陣形狀與維度操作
- shape:描述矩陣的行列結構(如 3 行 5 列返回 (3, 5))。
- ndim:返回矩陣的維度數(一維返回 1,二維返回 2)。
- size:返回矩陣中元素的總數(如 15 個數據返回 15)。
import numpy as np list =[1,2,3,4,5,6] m = np.array([list,list,list]) print(m.size)
- dtype:返回矩陣元素的數據類型
int8, int16, int32, int64: 表示不同長度的有符號整數。
uint8, uint16, uint32, uint64: 表示不同長度的無符號整數。
float16, float32, float64 (float 是 float64 的簡寫): 表示不同精度的浮點數。
complex64, complex128 (complex 是 complex128 的簡寫): 表示復數,其中64和128表示復數的實部和虛部的位數。
bool: 布爾類型,可以存儲True或False。
str_: 表示定長字符串,可以通過添加數字來指定字符串的長度,如 'S10' 表示長度為10的字符串。
object: 表示Python對象類型,可以用來存儲任意Python對象。
六.數據升維與reshape()方法
- reshape:將一維數據轉換為多維矩陣,需指定新形狀(如 (4, 4) 將 16 個數據轉為 4 行 4 列)。參數 newshape 可為元組(如 (4, 4))或使用 -1 自動計算維度(如 reshape(4, -1) 表示 4 行,列數自動推導為 4)。
list1=[1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4] v=np.array(list1) print(v.reshape(4,4))
list1=[1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4] v=np.array(list1) print(v.reshape(4,-1))
- 三維轉換示例:reshape(1, -1, 2) 將 16 個數據轉為 1×8×2 的三維結構。
list1=[1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4] v=np.array(list1) print(v.reshape(1,-1,2))
- resize:調整矩陣大小,可直接修改原始數據到相應的維度,返回值 None。reshape()方法則返回的是修改后的矩陣而原來的矩陣并不會改變
不返回計算結果,直接修改原始數組
list1=[1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4] v=np.array(list1) r = v.resize(4,4)#直接會修改原始數據到相應的維度 print(r) print(v) print(v.ndim)