我有一个数组Gamma
,Gamma.shape=(20,7,90,144)
,它表示维度(t,z,y,x)和它们各自的索引,我用[l,k,j,i]
表示。对于每个(t,y,x),我想找到k
的最小值,这样Gamma[l,k,j,i] > g_crit
,其中g_crit
是某个常数。将这组最低的k
值表示为k_low
;我发现我可以用
k_low = np.argmax(Gamma > g_crit, axis=1)
还有另一个数组levs
,levs.shape=(7,)
,也对应于z维。我最终尝试创建数组levs_low
,这样levs_low.shape=(20,90,144)
和levs_low[l,j,i]=levs[k_low[l,j,i]]
。我被困在这个台阶上了。有什么想法吗?谢谢。你知道吗
对于您的情况,
np.take()
似乎是一个不错的选择:OBS:
take
似乎提供了优化的性能,check this question这应该可以做到:
举个小例子:
@Saullo Castro的回答很有趣。奇怪的是,在花哨的索引和
np.take
之间会有5倍的时间差。你知道吗相关问题 更多 >
编程相关推荐