Numpy聚合、广播规则

聚合规则

聚合操作

  • 聚合可以直接作用在数组上面,不需要每次都numpy.xxx调用
  • 除any和al之外,每个函数都存在一个NaN安全的版本
  • np.sum:和
  • np.prod:积
  • np.mean:平均数
  • np.std:标准差
  • np.var:方差
  • np.min:最小值
  • np.max:最大值
  • np.argin:最小值的索引
  • np.argmax:最大值的索引
  • np.median:中位数
  • np.oercentile:基于元素排序的统计值
  • np.any:是否至少存在一个为真的元素
  • np.all:所有元素是否为真

适合通用函数的聚合

主要指的是reduce和accumulate。

  • reduce:功能同python的标准reduce一致,即重复执行某一个操作直到最后一 个结果
  • accumulate:计算的中间结果会被存储
import numpy as np
# reduce
a = np. arange(100 )
#把a内所有值进行相加
b = np. add. reduce(a)
print("b = ",b)
#把a内所有制相加,但相加的中间结果需要保存下来
c= np. add . accumulate(a)
print("C = \n", c)

在这里插入图片描述

求和

  • numpy.sum函数和pythoy的求和函数功能基本一致,但是还是有一 些小区别:
  • numpy的求和函数具有维度的概念,求和多项可以是数组
  • 同时参数含义跟python的sum并不一致
  • numpy.sum速度快一些
import numpy as np
a = np.arange(100).reshape((10,10))
b = np.sum(a)
print("b = ",b)

最大/小值

import numpy as np
#请注意一下三个求最小值的区别
a = np. random. rand (20)
print("a = \n", a)
#调用pyhton的标准min
m1 = min(a)
print("最小值: " , m1)
#调用numpy的min
m2 = np.min(a)
print("最小值:",m2)
# numpy .min的简写形式,跟进a的类型会自动调用numpy.min
m3 = a.min( )
print("最小值: ", m3)

多维度求和

import numpy as np
a = np. random. randint(100,size=(4,5))
print("a = \n", a)
#求最大值,每一行
b = a. max(axis=1)
print ("a每一行的最大值是:",b)
#求每一列的和
c= a.sum(axis=0)
print("a每一列的和是: " ,c)

在这里插入图片描述

广播规则

  • 如果两个数组维度不相同,则小维度数组形状在最左边补上1
  • 如果两数组的形状在任何一个维度上都不匹配,则数组的形状会沿着维度为1的维度扩展,以匹配零位一个数组
  • 如果两两个数组的形状在任何一个维度上都不匹配并且没有任何一个维度等于1,则异常
import numpy as np
#规则1案例
a = np.arange(15). reshape((3,5))
b = np. arange(5)
c=a+b
print("a.shape = ",a.shape )
print("a = \n", a)
print( )
print ("b.shape = ",b. shape)
print("b = \n",b)
print()
print("c.shape = ",c.shape )
print("C = \n", c)

在这里插入图片描述

import numpy as np
#广播规则2
a = np. arange(5). reshape((5,1) )
b = np.arange(5)
c=a+b
print("a.shape = ",a. shape )
print("a = \n", a)
print( )
print("b.shape = ",b. shape)
print("b = \n", b)
print()
print("c.shape = ",c. shape )
print("c = \n", c)

在这里插入图片描述

import numpy as np
#不能广播的案例
a = np.arange(15). reshape((3,5))
b = np. arange (3)
print("a.shape = ",a. shape)
print("b. shape =",b. shape)
c=a+b

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫余

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值