數據分析必備知識(1),Numpy基礎篇

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-----------

推薦往期文章如下:


分享到:


相關文章: