python科學計算包 numpy是pandas、SciPy、sklearn等模塊的必需模塊,pandas、SciPy和sklearn模塊都是在numpy模塊的基礎上封裝的,由此可見numpy的作用是很大的。
numpy在後期數據科學方面的學習上會經常性用到的,特別是算法模型這一大塊,要將數據轉換成不同維度的數組以便符合算法模型的需求。
本文是總結性文章,適合學過、還沒學過的讀者朋友閱讀。下面從numpy基礎操作講起,後續將持續更新.....
安裝:
pip install numpy
導入模塊
import numpy as np
1、創建數組
# 一維數組 np.array([1, 2, 3, 4])
array([1, 2, 3, 4])
# 二維數組,指定數據類型為浮點型 np.array([(1.5, 2, 3), (4, 5, 6)], dtype=float)
array([[ 1.5, 2. , 3. ],
[ 4. , 5. , 6. ]])
# 三維數組 np.array([[(1.5, 2, 3), (4, 5, 6), (3, 2, 1), (4, 5, 6)]], dtype = float)
array([[[ 1.5, 2. , 3. ],
[ 4. , 5. , 6. ],
[ 3. , 2. , 1. ],
[ 4. , 5. , 6. ]]])
2、初始化佔位符
# 1、創建值為 0 的數組, np.zeros((rows, columns)) np.zeros((3, 4))
array([[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]])
# 2、創建值為 1 數組 # np.ones((多少個數組,rows,columns)) np.ones((2, 3, 4), dtype=np.int16)
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]], dtype=int16)
# 3、創建均勻間隔的數組(步進值,類似於等差數列) # np.arange(start, end, 等差值) np.arange(10, 25, 2)
array([10, 12, 14, 16, 18, 20, 22, 24])
# 4、創建均勻間隔的數組(樣本值) # np.linspace(允許的最小值,允許的最大值,生成樣本值的個數) np.linspace(0, 2, 9)
array([ 0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
# 5、創建常數數組 # np.full((rows, columns), 指定的常數值) np.full((3, 6), 5)
array([[5, 5, 5, 5, 5, 5],
[5, 5, 5, 5, 5, 5],
[5, 5, 5, 5, 5, 5]])
# 6、創建 3 x 3 單位矩陣 np.eye(3)
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
# 7、創建隨機值的數組 # np.random.random((rows, columns)) np.random.random((2, 2))
array([[ 0.23610365, 0.55253555],
[ 0.6943377 , 0.05858759]])
3、輸入輸出
1、輸出
# 語法:np.save(fileName, 需要保存的數組) np.save('../data/my_array', [b, a]) # 保存多個要用 () 或者 [] 括起來 np.savez('../data/my_array.npz', a, b) np.savetxt('../data/my_array.txt', b, delimiter=" ") np.savetxt('../data/my_array.csv', b, delimiter=",")
2、輸入
np.load('../data/my_array.npy') np.loadtxt('../data/my_array.txt') np.genfromtxt('../data/my_array.csv', delimiter=' ')
4、數據類型
1、帶符號的64位整數
np.int64
# 指定創建的"步進值"數組為整數 np.arange(1, 20, 4, dtype=np.int64)
array([ 1, 5, 9, 13, 17], dtype=int64)
2、標準雙精度浮點數
np.float32
# 創建均勻的樣本值 np.linspace(1, 6, 5, dtype=np.float32)
array([ 1. , 2.25, 3.5 , 4.75, 6. ], dtype=float32)
3、顯示為128位浮點數的複數
np.complex
4、布爾值:True值和False值
np.bool
5、Python 對象
# 創建 4 x 4 矩陣,指定類型為 python 對象 np.object np.eye(4, dtype=np.object)
array([[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]], dtype=object)
6、固定長度字符串
# 創建常數數組,指定類型為字符串 np.string_ np.full((3, 4), 4, dtype=np.string_)
array([[b'4', b'4', b'4', b'4'],
[b'4', b'4', b'4', b'4'],
[b'4', b'4', b'4', b'4']],
dtype='|S1')
5、數組信息
test = np.array([[1, 15, 10, 2], [2, 5, 9, 1], [6, 2, 5, 4]]) test
array([[ 1, 15, 10, 2],
[ 2, 5, 9, 1],
[ 6, 2, 5, 4]])
1、數組形狀,幾行幾列
# 查看整體形狀,查看行的形狀,查看列的形狀 a, b, c= test.shape, test.shape[0], test.shape[1] a, b, c
((3, 4), 3, 4)
2、數組長度
len(test) # 也相當求行的數量
3
3、幾維數組
test.ndim
2
4、數組有多少個元素
test.size
12
5、數據類型
test.dtype
dtype('int32')
6、數據類型的名字
test.dtype.name
'int32'
7、數據類型轉換
test.astype(float)
array([[ 1., 15., 10., 2.],
[ 2., 5., 9., 1.],
[ 6., 2., 5., 4.]])
6、查看某個函數怎麼使用,有哪些參數
np.info(np.linspace)
End-----------
推薦往期文章如下:
關鍵字: np.savetxt 數據類型 維度