2021-09-11

numpy的部分简单了解@TOC

NumPy支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

创建一个数组
1.np.array( )#可以将数组或列表转换为ndarry

2.np.random.randint(start,stop,step) #随机创建一个[start,stop]间距为step的数组

3.np.random.standard_normal(size=(3,4,2)) #生成三个 4*2矩阵,元素取值于正态分布
4. 一些特殊矩阵
np.zero((n,m)) np.ones((n,m))
生成全0 | 1 的n*m矩阵
np.diag([a,b,c,d]) #生成对角阵

测试矩阵是否足够接近

np.allclose(A, B,atol | rtol)
比较AB矩阵每个元素是否符合后面所设绝对误差 atol = ‘ ‘ 相对误差rtol = ’ ‘
#默认在1e-05
如果有满足条件的元素则返回Ture
np.isclose(A, B,atol | rtol)
与上一致,但返回的是每一个元素的比较结果,一个含ture和false的列表

绝对误差和相对误差的区别
绝对误差是对应元素相减值
相对误差是 x1/x2 - 1 的值

增加,修改数组元素
np.append(A,[a,b,c]) 在矩阵后追加一个或多个元素 #生成新数组,原保留
np对象 A
A[index] = a #修改A的第 index元素为a ,原数组改变
A[1: , 2:] = [[1,2],[2,3]] #将行大于1 列大于2的 部分改为 (12)(23)

切片
A[start,stop,step]
A[::-1] 反序

矩阵运算
加减乘除 + - * /
整除 // 余数 %
幂运算 2* *A #2的A每元素次方 A**2 #A的每元素平方

查看矩阵信息
A.size #矩阵元素数
A.shape #矩阵行列
x.nonzero()) # 非0元素下标,分别返回行下标和列下标
x.diagonal() # 对角线元素
x.argmax(axis=1) # 横向最大值的下标 0则纵向
x.max(axis=1) # 横向最大值
x.sum() # 所有元素之和
x.mean() # 所有元素平均值

修改矩阵形式
A.shape = n,m #不能改变原有元素个数,改变原矩阵
A.resize = ((n,m)) #会自动补0 ,生成新的矩阵,原矩阵不变

np.where(x<5, 0, 1) # 小于5的元素值对应0,其他对应1
np.piecewise(x, [x<4, x>7], [lambda x:x2, lambda x:x3]) # 小于4的元素乘以2,大于7的元素乘以3,其他元素变为0

计算两矩阵关系
相关系数 np.corrcoef 正值 正相关 变化趋势一致 负相关相反

特征向量与特征值
np.linalg.eig(A) = e,v 返回两个给e,v。分别是特征值和特征向量
转置 A.T 求逆 np.linalg.inv(x) 求逆
np.linalg.solve(A,x) 求解特征方程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值