我想根据另一个数组中的值过滤一个numpy数组:
- 如果来自另一个数组的值为正,则在该数组中保持其不变,
- 如果另一个数组中的值为0,则将此数组中的值更改为0,
- 如果另一个数组中的值为负,则反转该数组中的值的符号,
目前我有:
import numpy as np
this = np.array([1, 2, -3, 4])
other = np.array([0, -5, -6, 7])
this[other == 0] = 0
this[other < 0] *= -1
print(this)
# [ 0 -2 3 4]
如图所示,它需要循环other
两次以获得值等于或小于0的索引,并且需要循环this
两次以更改值。有更快的方法吗?(假设this
和other
是非常大的数组)
1条答案
按热度按时间brc7rcf01#
使用
np.sign
函数来获得数字符号的指示: