【发布时间】:2021-06-02 14:21:46
【问题描述】:
我正在尝试计算T_Sum 值,以便对于大于Numbers 中的Vals 值的值,它只会添加到该元素的Vals 值。比如Vals的第一个元素是60,而Numbers内的所有值都大于60(一共11个),所以结果是60 * 11。如果Vals的值是105,则有5个大于 105 的元素,因此结果将为 525。如果没有 for 循环,我该如何做到这一点?
Vals = np.arange(start=60, stop=105, step=5)
Numbers = np.array([123.6, 130, 150, 110.3748, 111.6992976,
102.3165566, 97.81462811, 89.50038472, 96.48141473, 90.49956702, 65])
我的尝试
T_Sum = np.ma.masked_array(np.repeat(Numbers[None,:],Vals.size,0),mask=[Numbers<Vals[:,None]]).sum(-1).data
预期输出
[660, 650, 700, 750, 800, 850, 810, 760, 600, 525]
【问题讨论】:
-
'有5个元素大于6'是什么意思?
-
应该是 60。我更新了问题。
-
抱歉我已经更新了,我觉得现在应该不错了。
-
是的,修复了,抱歉,哈哈