【发布时间】:2019-04-18 15:04:16
【问题描述】:
我觉得奇怪的是 numpy.power 没有轴参数...是不是因为有更好/更安全的方法来实现相同的目标(将 3D 数组中的每个 2D 数组提升到 1D 数组的幂) .
假设您有一个 (3,10,10) 数组 (A),并且您希望将每个 (10,10) 数组提升到形状为 (3,) 的数组 B 中的元素的幂。
您应该可以使用np.power(A,B,axis=0) 来做到这一点,对吧?
然而它会产生以下 TypeError :
TypeError: 'axis' is an invalid keyword to ufunc 'power'
由于 power 似乎没有轴或轴参数(尽管是 ufunc),所以首选的方法是什么?
可能有一个使用ufunc.reduce 方法的解决方案,但我真的不明白它如何与numpy.power 一起工作...
现在我做:
np.array([A[i,:,:]**B[i] for i in range(3)])
但它看起来很难看,而且效率可能不如 numpy 方法。
谢谢
【问题讨论】:
-
你可以使用broadcasting:
A**B[:,None,None]
标签: python numpy numpy-ufunc