我有一个R
尺寸为(n,n,n,3)的numpy数组和一个f
将一维矢量转换为标量的函数。我需要一个A
与之R
有关系的新数组
A[i, j, k] = f(R[i, j, k, :])
没有三个for语句,如何在numpy中执行此操作。
理想情况下,您可以通过更改实现f
以使用适当处理高维输入的技术来实现。例如,您可能更改np.sum(whatever)
为np.sum(whatever, axis=-1)
在最后一个轴上求和而不是整个数组。这将产生最有效的结果,但是取决于可能会困难或不可能f
。
较慢,容易得多的答案是np.apply_along_axis
:
A = np.apply_along_axis(f, -1, R)
这比3的循环好看,但效率可能更高。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句