例如,假设我有一个形状为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总和不相交的索引所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)