我有一个由随机排列的1和0组成的numpy数组。
numpy.array([[0,1,1],[1,0,0]])
如何在不更改零的情况下将零更改为-1?
答案 0 :(得分:1)
正如the comments中已经指出的那样,基本上有两种方法可以替换这些值。使用boolean array indexing来更改原位值:
>>> import numpy as np
>>> arr = np.array([[0,1,1],[1,0,0]])
>>> arr[arr==0] = -1
>>> arr
array([[-1, 1, 1],
[ 1, -1, -1]])
您可能想要检查arr == 0
(创建掩码)和arr[arr == 0]
的中间步骤(仅获取掩码为True的数组值,在这种情况下,值为0)了解发生了什么。
或者,如果您想要创建替换值的数组副本,则np.where
:
>>> np.where(arr==0, -1, arr)
array([[-1, 1, 1],
[ 1, -1, -1]])
这将创建一个新数组,并在条件(第一个参数)为True的任何地方使用第二个参数,否则使用第二个参数items。