python计算平均值与方差用np_numpy:在多个非连续轴上计算平均值和标准差(第二次尝试)...

该文章介绍了如何在Python中使用numpy库在多个非连续轴上计算数组的平均值和标准差,同时指出现有方法存在的效率问题。作者提供了名为mu_sigma的函数,用于解决此问题,该函数接受一个n维数组和轴的元组,返回一个新的(n-k+1)维数组,其中包含了平均值和标准差。示例展示了如何处理4×2×4×3×4的浮点数数组,并给出了相应的结果验证。
摘要由CSDN通过智能技术生成

[这篇文章的早期版本没有得到任何回应,因此,如果这是因为不清楚,我已经重新编写了它,并添加了额外的解释和代码注释。]

我想计算一个numpyn维数组的元素的平均值和标准差,这些元素不对应于单个轴(而是对应于k>1非连续轴),并得到在新的(n-k+1)维数组中收集的结果。在Does numpy include standard constructs to perform this operation efficiently?

下面复制的函数mu_sigma是我解决这个问题的最佳尝试,但它有两个明显的低效:1)它需要复制原始数据;2)它计算平均值两次(因为计算标准差需要计算平均值)。在

mu_sigma函数接受两个参数:box和{}。box是一个n维numpy数组(又名“ndarray”),而axes是一个k-整数元组,表示box的维数(不一定是连续的)。包含新的多维函数<1><1>的新函数。在

下面的代码还包括mu_sigma的一个实例。在这个例子中,box参数是一个4×2×4×3×4的浮点数数组,axes参数是元组(1,3)。(因此,我们有n==len(box.shape)==5,并且k==len(axes)==2。)对于这个示例输入返回的结果(这里我称之为outbox)是一个4×4×2的浮点数数组。对于每个索引的三元组i、k、j(其中每个索引都在集合{0、1、2、3}上),元素{}是numpy表达式box[i, 0:2, j, 0:3, k]指定的6个元素的平均值。同样,outbox[i, j, k, 1]是相同6个元素的标准偏差。这意味着,第一个n-k==3个与输入ndarraybox的非轴维度相同的索引上的结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值