numpy基本操作
导入numpy
import numpy as np
创建数组
1.1 使用np.array()
a= np.array([1,2,3,4])
a
array([1, 2, 3, 4])
a = np.array(
[
[1,2,3,4],
[5,6,7,8]
])
a
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
1.1.1ndarray属性
a
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
a.ndim
2
a.shape
(2, 4)
a.dtype
dtype('int32')
a.size
8
a.itemsize
4
1.1.2使用np.arange(start,stop,step,dtype)
- start 表示开始的数(包含)默认从0就开始
- stop表示结束的数(不包含)
- step 指定步长 默认为1
- dtype 指定的数据类型
np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(1,10,2)
array([1, 3, 5, 7, 9])
np.arange(10).reshape(2,5)
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
1.3使用nplinspace(stare,stop,num,endpoint)创建等差数组-指定数量
- start起始值
- stop结束值
- num要生成的等间隔样例数量,默认为50
- endpoint序列中是否包含stop值,默认true
np.linspace(0,10,5)
array([ 0. , 2.5, 5. , 7.5, 10. ])
1.4 创建特定数组
1.4.1np.ones()创建全是1 的数组
np.ones(10)
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
np.ones((2,5))
array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])
ones_like创建形状相同的数组
a
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
np.ones_like(a)
array([[1, 1, 1, 1],
[1, 1, 1, 1]])
1.4.2np.zeros()创建全是0 的数组
np.zeros(10)
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.zeros((3,4))
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
同理zeros_like创建形状相同的数组
np.zeros_like(a)
array([[0, 0, 0, 0],
[0, 0, 0, 0]])
1.4.3 np.empty()创建值未初始化的数组
np.empty((3,4))
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
同理empty_like 创建形状相同的数组
np.empty_like(a)
array([[ 0, 1, 0, 1645630477],
[ 840, 0, 768, 32766]])
1.4.4 np.full()创建指定值得数组
np.full((3,4),666)
array([[666, 666, 666, 666],
[666, 666, 666, 666],
[666, 666, 666, 666]])
同理full_like 创建形状相同得数组
np.full_like(a,666)
array([[666, 666, 666, 666],
[666, 666, 666, 666]])
1.4.5random随机函数创建数组
np.random.rand(5)
array([0.03112879, 0.26770155, 0.98480958, 0.00530826, 0.28476774])
np.random.rand(3,4)
array([[0.18432096, 0.52445481, 0.09512187, 0.93167262],
[0.77688215, 0.16532922, 0.89006584, 0.62046674],
[0.96771746, 0.93658368, 0.95323453, 0.91017062]])
np.random.randint(1,10)
6
np.random.randint(10)
4
np.random.randint(10,20,(3,4))
array([[12, 14, 19, 13],
[12, 14, 18, 10],
[14, 10, 19, 12]])
np.random.uniform(1,10,(3,4))
array([[7.85035543, 2.56824208, 1.54116886, 8.130379 ],
[5.82342915, 5.16201341, 2.79545147, 2.59016203],
[2.70404236, 3.1324535 , 1.21330761, 8.57541955]])
np.random.normal(5,10,(3,4))
array([[ 3.944669 , -0.39016264, -5.21369742, -0.08211208],
[ 7.49338125, 18.05193217, 2.56987941, -6.26421486],
[16.15043407, 5.58681344, 2.48381599, 17.91341218]])
np.random.randn(3,4)
array([[-1.58031732, 1.35789356, 0.39913022, -0.96590225],
[ 0.49926635, 0.10392622, 0.03091543, 0.13137241],
[ 0.37363276, -0.65788659, 0.12043172, -1.44992521]])
2.数组的索引
x = np.arange(10)
x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
x[0]
0
x[2:-1]
array([2, 3, 4, 5, 6, 7, 8])
Y = np.arange(20).reshape(4,5)
Y
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
Y[0,0]
0
Y[1]
array([5, 6, 7, 8, 9])
Y[:,1]
array([ 1, 6, 11, 16])
数组的运算
A = np.arange(10).reshape(2,5)
A
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
A+1
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]])
A*3
array([[ 0, 3, 6, 9, 12],
[15, 18, 21, 24, 27]])
np.sin(A)
array([[ 0. , 0.84147098, 0.90929743, 0.14112001, -0.7568025 ],
[-0.95892427, -0.2794155 , 0.6569866 , 0.98935825, 0.41211849]])
B = np.arange(10,20).reshape(2,5)
B
array([[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
A+B
array([[10, 12, 14, 16, 18],
[20, 22, 24, 26, 28]])
numpy常用的一些数学统计函数
A
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
np.sum(A)
45
np.prod(A)
0
np.min(A)
0
np.max(A)
9
np.median(A)
4.5
np.mean(A)
4.5
np.std(A)
2.8722813232690143
np.var(A)
8.25