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]