在numpy数组中发出替换值的问题

时间:2016-10-31 18:52:54

标签: python numpy

我正在尝试复制一个数组,将副本中的所有值替换为低于阈值,但保持原始数组的完整。

以下是我需要做的简化示例。

import numpy as np

A = np.arange(0,1,.1)
B = A
B[B<.3] = np.nan
print ('A =', A) 
print ('B =', B)

哪个收益

A = [ nan  nan  nan  0.3  0.4  0.5  0.6  0.7  0.8  0.9]
B = [ nan  nan  nan  0.3  0.4  0.5  0.6  0.7  0.8  0.9]

我无法理解为什么A&lt; = .3中的值也会被覆盖?

有人可以向我解释这个并提出解决方法吗?

1 个答案:

答案 0 :(得分:2)

B = A更改为B = A.copy(),这应该可以正常工作。如上所述,BA引用内存中的相同对象。