我用numpy测试了就地操作的行为。我观察到以下情况:
test = np.arange(0, 10).reshape(2, 5)
mask = test > 5
这个管用
np.multiply(test, 3, out=test)
# Output:
[[ 0 3 6 9 12]
[15 18 21 24 27]]
但是这个
np.multiply(test[mask], 3, out=test[mask])
print(test)
# Output:
[[0 1 2 3 4]
[5 6 7 8 9]]
没有为什么
1条答案
按热度按时间gblwokeq1#
以下是一些测试以供比较:
面具中的几个Truthy值:
有很多真理的价值观:
随机掩码:
为了完整性,不带掩码:
所以我推荐使用
np.multiply
和out=arr
以及where=mask
。