temp
in your example is a list
, which clearly is not equal to 1. Thus the expression
temp[temp != 1] = 0
is actually
temp[True] = 0 # or, since booleans are also integers in CPython
temp[1] = 0
Convert temp
to a NumPy array to get the broadcasting behaviour you need
>>> import numpy as np
>>> temp = np.array([1,2,3,4,5,6])
>>> temp[temp != 1] = 0
>>> temp
array([1, 0, 0, 0, 0, 0])
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…