1.生成数组
>>> import numpy as np
>>> np.arange(4)
array([0, 1, 2, 3])
>>> np.array([1,2])
array([1, 2])
>>> np.array(range(5))
array([0, 1, 2, 3, 4])
>>> np.linspace(0,10,11) #等差数列
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
>>> np.zeros(3) #全0一维数组
array([0., 0., 0.])
>>> np.ones(5) #全1一维数组
array([1., 1., 1., 1., 1.])
>>> np.ones((2,3))
array([[1., 1., 1.],
[1., 1., 1.]])
>>> np.identity(2) #单位矩阵
array([[1., 0.],
[0., 1.]])
>>> np.empty((3,2)) #生成空数组,只申请空间而不初始化,元素值不确定
array([[1., 1.],
[1., 1.],
[1., 1.]])
>>> np.random.randint(0,50,6) #在(0,50)之间生成6个整数
array([22, 28, 19, 15, 46, 10])
>>>
>>> np.diag([1,2,3]) #生成对角矩阵
array([[1, 0, 0],
[0, 2, 0],
[0, 0, 3]])
- 数组的简单应用
创建和修改
>>> x = np.arange(8)
>>> x
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> np.append(x,8) #返回新数组,增加元素
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
>>> x
array([0, 1, 2, 3, 4, 5, 6, 7]) #不影响原来的数组
>>> y=np.append(x,[10])
>>> y
array([ 0, 1, 2, 3, 4, 5, 6, 7, 10])
>>> x
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> x[1]=11 #原地修改元素值
>>> x
array([ 0, 11, 2, 3, 4, 5, 6, 7])
>>> np.insert(x,1,12) #插入元素,返回新数组,不影响原来的数组
array([ 0, 12, 11, 2, 3, 4, 5, 6, 7])
>>> x.repeat(2) #元素重复,返回新数组
array([ 0, 0, 11, 11, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7])
#与列表的重复(与整数相乘)不同
元素访问
排序
运算
点积/内积
支持函数运算
>>> a
array([[1, 2, 3],
[3, 4, 6]])
>>> np.sin(a) #所有元素求正弦值
array([[ 0.84147098, 0.90929743, 0.14112001],
[ 0.14112001, -0.7568025 , -0.2794155 ]])
>>> np.round(_) #所有元素四舍五入
array([[ 1., 1., 0.],
[ 0., -1., -0.]])
>>> d=np.random.rand(10)* 10
>>> d
array([4.18480207, 0.01846227, 5.88735248, 4.88020411, 2.57551268,
7.09798461, 1.54136358, 4.31467582, 0.37153993, 8.35910885])
>>> np.floor(d) #向下取整
array([4., 0., 5., 4., 2., 7., 1., 4., 0., 8.])
>>> np.ceil(d) #向上取整
array([5., 1., 6., 5., 3., 8., 2., 5., 1., 9.])
>>>np.absolute(-3) #绝对值或模
3
>>>np.absolute(3+4j)
5.0
>>>np.log2(8) #对数
3.0
>>>np.multiply([1,2,3],[4,5,6]) #乘积
array([4,10,18])
>>>np.multiply(2,[4,5,6])
array([8,10,12])
- 矩阵
创建矩阵
>>> a_list=[2,4,6]
>>> a_mat=np.matrix(a_list) #创建
>>> a_mat
matrix([[2, 4, 6]])
>>> a_mat.T #区别于数组的转置
matrix([[2],
[4],
[6]])
>>> x=np.array([1,3,5])
>>> x.T
array([1, 3, 5])
>>> a_mat.shape #形状
(1, 3)
>>> a_mat.size #元素个数
3
#矩阵乘法 #区别于数组
>>> a_mat=np.matrix((1,2,3))
>>> b_mat=np.matrix((2,4,6))
>>> a_mat*b_mat.T #转置
matrix([[28]])
>>> a_mat.mean()
2.0
>>> a_mat.sum()
6
>>> a_mat.max(axis=1)
matrix([[3]])
>>> a_mat.max(axis=0) #纵向最大值
matrix([[1, 2, 3]])
#不是方阵时,返回的对角元素
>>> d_mat=np.matrix([[1,2,3],[2,4,6]])
>>> d_mat.diagonal()
matrix([[1, 4]])
二维矩阵计算
子模块
>>> x=[-1,-2,-4]
>>> y=[5,2,7]
>>> z=np.vstack((x,y)) #压缩成一个矩阵
>>> z
array([[-1, -2, -4],
[ 5, 2, 7]])
>>> np.cov(z)
array([[ 2.33333333, -2.16666667],
[-2.16666667, 6.33333333]])