Numpy数组运算

Numpy数组运算,第1张

文章目录
  • 算术运算
  • 比较 获取符合值 统计 逻辑运算
  • 广播

算术运算
a = np.array([1,2,3,4,5])
b = np.array([0,1,2,3,4])

nd为一个数或一维或多维数组数组,a、b为两数组

代码含义
1.0/a数组除法,倒数
b/a除法
a+b
a-b
a*b
2**a次方 a**2
b//a整除
-a取负
b%a取余
nd.min()最小值
nd.min(axis=0)二维中每列最小
nd.min(axis=1)二维中每行最小
np.min(nd)最小值
np.max(nd)最大值
np.maximum(nd, 5)与5相比返回最大值,如果nd为数组则小于5的用5填充
np.sqrt(nd)开方
np.power(nd,2)指数
np.sin(nd)三角函数 nd = np.linscape(0,np.pi,3)
np.cos(nd)三角函数
np.abs(nd)绝对值 absolute(nd) 复数取绝对值则为模长
np.exp(nd)指数函数,打印e的nd次方,e是一个常数为2.71828
np.sum(nd)求和
np.mean(nd)计算平均值 nd.mean(0) (1) 多维数据不同维度均值
np.median(nd)中位数
np.std(nd)标准差
np.var(nd)方差
np.log(nd)底为e的对数,nd不能为0
np.log2(nd)底为2的对数,nd不能为0
np.multiply(nd, nd)对应元素相乘,也可乘常数,如np.multiply(nd, 2)即nd1*2,nd1/2
np.add(nd, nd)相加
np.subtract(nd, nd)相减
np.divide(nd, nd)相除
np.negative(nd)负数
np.floor_dicide(nd,nd)整除
np.mod(nd,nd)取模
np.dot(nd, nd)内积,矩阵相乘,nd为多维数组
np.add.reduce(a)各元素和
np.add.accumulate(a)计算中间结果 [1,3,6,10,15] 乘法类似
np.multiply.reduce(a)各元素乘积
np.multiply.outer(a,a)外积(矩阵相乘)
比较 获取符合值 统计 逻辑运算
a = np.array([1,2,3,4,5,6])
代码含义结果
a>3大于[False False False True True True]
a==3等于[False False True False False False]
np.equal(a,3)等于[False False True False False False]
np.not_equal(a,3)不等于[ True True False True True True]
np.less(a,3)小于[ True True False False False False]
np.less_equal(a, 3)小于等于[ True True True False False False]
np.greater(a, 3)大于[False False False True True True]
np.greater_equal(a, 3)大于等于[False False True True True True]
a = np.array([[1,3,6],[3,1,5]])
代码含义结果
a[a<3]小于3的所有值[1 1]
np.count_nonzero(a<3)a中小于3的个数2
np.sum(a<3)a中小于3的个数 false被解释为0 True为12
np.sum(a<3,axis=1)每行小于3的个数[1 1]
np.any(a>3)判断a有没有大于3的,返回False TrueTrue
np.all(a<5)a中所有值是否都小于5False
np.bitwise_and(a>2,a<4)&
np.bitwise_or(a<2,a>4)
np.bitwise_xor()^
np.bitwise_not()~
np.sum((a>2)&(a<4))2到4之间的个数
np.sum((a<2)(a>4))小于2或大于4的个数
np.sum(~((a<2)(a>4)))
广播

将不同维度的数据扩充为相同维度
如[5]扩充为[5,5,5],[0,1,2]扩充为[[0,1,2],[0,1,2],[0,1,2]],[[0],[1],[2]]扩充为[[0,0,0],[1,1,1],[2,2,2]]等

import numpy as np

a = np.array([0,1,2])
b = np.array([[1,1,1],[1,1,1],[1,1,1]])
c = np.array([[0],[1],[2]])
print(a+5)  # [5 6 7]   5广播为[5,5,5],相当于[0,1,2]+[5,5,5]
print(b+a)  # [[1 2 3] [1 2 3] [1 2 3]]   相当于a广播为[[0,1,2],[0,1,2],[0,1,2]]  两个相加
print(c+a)  # [[0 1 2] [1 2 3] [2 3 4]]   a为[[0,1,2],[0,1,2][,0,1,2]] b为[[0,0,0],[1,1,1],[2,2,2]]

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/873508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存