NumPy是一個開源的Python科學計算基礎庫,包含:
- 一個強大的N維數組對象 ndarray
- 廣播功能函數
- 整合C/C++/Fortran代碼的工具
- 線性代數、傅里葉變換、隨機數生成等功能
NumPy是SciPy、Pandas等數據處理或科學計算庫的基礎
包的下載與導入
Numpy 包,如果已安裝annaconda可直接使用,如果沒有,也可以自行搜索下載
導入常用別名 np
import numpy as np
ndarray
ndarray 是一個 多維數組對象 ,它由兩部分組成:
- 實際的數據
- 描述這些數據的元數據(數據維度,數據類型等)
ndarray 數組內元素類型一般要求相同(也可不同,不過這樣就和list區別不大了),數組下標從0開始。
它能夠從整體來描述一個數據集,能夠以整體的形式進行兩個數組的運算比較等操作。
創建
- 直接使用
np.array()
參數爲一個列表
>>> a = np.array([[0,1,2,3,4],
[5,6,7,8,9]])
屬性
以 [[0,1,2,3,4]],[5,6,7,8,9]]
爲例
- 使用
.ndim
獲取維度信息
>>> a.ndim
>>> 2
- 使用
.shape
獲取數組的形狀
>>> a.shape
>>> (2,5)
- 使用
.size
獲取數組的大小(元素個數)
>>> a.size
>>> 10
- 使用
.dtype
獲取數組內元素的存儲類型,(默認值與操作系統有關)
>>> a.dtype
>>> dtype('int64')
- 使用
.itemsize
獲取數組內單個元素的大小(字節)
>>> a.itemsize
>>> 8
元素類型
ndarray 沒有 double 類型
支持複數類型 complex64 , complex128
常見的類型:int , uint, float , bool
- 後綴16,32,65代表字節長度
數組的變換
維度變換
- 使用
.reshape(shape)
不改變數組元素,返回一個shape形狀的數組,原數組不變,shape爲數組形狀。
注意要保證改變形狀後的數組元素與之前一致
>>> a = np.array([[1,2,3,4,5],[6,7,8,9,10]])
>>> b = a.reshape([5,2])
>>> [[ 1 2 3 4 5]
[ 6 7 8 9 10]]
>>> [[ 1 2]
[ 3 4]
[ 5 6]
[ 7 8]
[ 9 10]]
原先2*5的數組a 變爲5*2的數組b
使用
.resize(shape)
與.reshape()
功能一致使用
.swapaxes(ax1,ax2)
調換兩個維度
>>> a = np.array([[1,2,3,4,5],[6,7,8,9,10]])
>>> b = a.swapaxes(0,1)
>>> b
>>> [[ 1 6]
[ 2 7]
[ 3 8]
[ 4 9]
[ 5 10]]
注意與reshape返回的數組的區別
- 使用
.flatten()
變爲一維數組
類型變換
使用方法 .astype(new_type)
返回一個新的數組
>>> b = a.astype(float32)
列表變換
使用方法 .tolist()
返回一個列表
>>> ls = a.tolist()
a是一個ndarray數組,ls是由這個數組生成的列表