我有一个numpy数组a
,a.shape=(17,90,144)
。我想找到cumsum(a, axis=0)
每列的最大值,但保留原来的符号。换句话说,如果给定列a[:,j,i]
的最大值cumsum
对应一个负值,我希望保留减号。在
代码np.amax(np.abs(a.cumsum(axis=0)))
得到了大小,但没有保留符号。使用np.argmax
将得到我需要的索引,然后我可以将其插入到原始的cumsum
数组中。但我找不到一个好办法。在
以下代码可以工作,但很脏,而且非常慢:
max_mag_signed = np.zeros((90,144))
indices = np.argmax(np.abs(a.cumsum(axis=0)), axis=0)
for j in range(90):
for i in range(144):
max_mag_signed[j,i] = a.cumsum(axis=0)[indices[j,i],j,i]
必须有一个更干净、更快的方法来做到这一点。有什么想法吗?在
我找不到
argmax
的替代品,但至少你可以用一种更矢量化的方法来固定它:相关问题 更多 >
编程相关推荐