我有随机数的numpy
数组。例如[7 1 2 0 2 3 4 0 5]
,我想同时替换每个数字,如果这个数组中的数字=7,我想用2替换它,如果数字=2,也用3替换它。所以它会像[2 1 3 0 3 4 0 5]
。我已经用np. where
尝试过了,但是不能改变它们中的任何一个。
如果您有多种条件,最好使用np.select:
a = np.array([7, 1, 2, 0, 2, 3, 4, 0, 5])
a = np.select([a == 7, a == 2], [2, 3], a)
[2 1 3 0 3 3 4 0 5]
Numpy使用标准==
运算符提供与标量的比较,使得arr==v
返回一个布尔数组。获取arr[arr==v]
获取arr
的子集(或切片),其中满足条件,因此此片段应该可以工作。
import numpy as np
arr = np.array([7, 1, 2, 0, 2, 3, 4, 0, 5])
arr[arr == 7] = 2
arr
array([2, 1, 2, 0, 2, 3, 4, 0, 5])