可以先使用.copy()将原数组复制一份,再针对复制的数组使用np.where()进行操作,避免原数组被修改。
代码示例:
import numpy as np
arr = np.arange(10)
arr[np.where(arr<5)] = -1 print(arr) # 输出:[-1 -1 -1 -1 -1 5 6 7 8 9],原数组被修改
arr_copy = arr.copy() arr_copy[np.where(arr_copy<5)] = -1 print(arr_copy) # 输出:[-1 -1 -1 -1 -1 5 6 7 8 9],复制的数组被修改 print(arr) # 输出:[0 1 2 3 4 5 6 7 8 9],原数组未被修改