python – NumPy总和不相交的索引

python – NumPy总和不相交的索引,第1张

概述我有一个应用程序,我需要在3D NumPy数组中的任意索引组之间求和.内置的NumPy数组求和例程总结了ndarray的一个维度上的所有索引.相反,我需要总结我的数组中的一个维度的索引范围并返回一个新数组. 例如,假设我有一个形状为ndarray(70,25,3).我希望总结某些索引范围的第一个维度并返回一个新的3D数组.考虑从0:25,25:50和50:75的总和,它将返回一个形状数组(3,25 我有一个应用程序,我需要在3D NumPy数组中的任意索引组之间求和.内置的NumPy数组求和例程总结了ndarray的一个维度上的所有索引.相反,我需要总结我的数组中的一个维度的索引范围并返回一个新数组.

例如,假设我有一个形状为ndarray(70,25,3).我希望总结某些索引范围的第一个维度并返回一个新的3D数组.考虑从0:25,25:50和50:75的总和,它将返回一个形状数组(3,3).

有没有一种简单的方法可以在NumPy数组的一个维度上做“不相交的总和”来产生这个结果?

解决方法 您可以使用np.add.reduceat作为此问题的一般方法.即使范围的长度不同,这也适用.

要沿着0轴对切片0:25,25:50和50:75求和,请传入索引[0,50]:

np.add.reduceat(a,[0,50],axis=0)

此方法也可用于求和非连续范围.例如,要将切片0:25,37:47和51:75相加,请写:

np.add.reduceat(a,37,47,51],axis=0)[::2]

对相同长度的范围求和的另一种方法是重新整形阵列,然后沿轴求和.与上面第一个例子相同的是:

a.reshape(3,a.shape[0]//3,a.shape[1],a.shape[2]).sum(axis=1)
总结

以上是内存溢出为你收集整理的python – NumPy总和不相交的索引全部内容,希望文章能够帮你解决python – NumPy总和不相交的索引所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存