Python 替换numpy数组中的值时出现问题

Python 替换numpy数组中的值时出现问题,python,numpy,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中的值将B=A更改为B=A.copy(),这应该可以正常工作。如前所述,B和A引用内存中的同一对象。将B=A更改为B=A.copy(),这应该可以按预期工作。如前所述,B和A引用

我尝试复制一个数组,替换副本中低于阈值的所有值,但保持原始数组不变

下面是我需要做的一个简单示例

import numpy as np

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

我不明白为什么A中的值将
B=A
更改为
B=A.copy()
,这应该可以正常工作。如前所述,
B
A
引用内存中的同一对象。

B=A
更改为
B=A.copy()
,这应该可以按预期工作。如前所述,
B
A
引用内存中的同一对象。

B=A
不是副本。
A
B
指向同一对象。通常,在Python中,如果使用=,将复制对对象的引用,而不是对象本身,除非使用copy()(甚至deepcopy()如果对象本身包含引用)。这节省了内存和时间,但有时会很棘手。
B=A
不是副本。
A
B
指向同一个对象。通常在Python中,如果使用=,会复制对对象的引用,而不是对象本身,除非使用copy()(如果对象本身包含引用,甚至是deepcopy())。这可以节省内存和时间,但有时会很棘手。
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]