【发布时间】:2021-05-11 18:27:29
【问题描述】:
函数a[a.size - (a >= 0)[::-1].argmax():] = 0 如果数组等于或小于 0,则将 0 分配给数组,它还会将 0 分配给它后面的数组。在示例 a 中,该函数工作正常,它将 0 分配给第三个元素,直到最后一个元素。但是在示例b 中,即使初始值为负,它也不会这样做。我怎样才能修改函数以便它给我想要的结果。
示例 A
a = np.array([[ 123.7 131.1 -4578.2 -4579.1 -4520.1 -4561.3 -4490.9 -4498.5 -4513.8
-4550.9]])
a[a.size - (a >= 0)[::-1].argmax():] = 0
Output = [123.7 131.1 0. 0. 0. 0. 0. 0. 0. 0. ]
示例 B
b = np.array([-570., -593.37, -286.59771, -264.24308862])
b[b.size - (b >= 0)[::-1].argmax():] = 0
Output = [-570., -593.37, -286.59771, -264.24308862]
Desired Output = [0, 0, 0, 0]
【问题讨论】:
-
我认为数组 a 有一个额外的维度,因为我复制了您的代码并且它没有给我输出。你可以编辑它。
标签: python arrays function numpy iterator