我有一个由随机排列的1和0组成的numpy数组。
numpy.array([[0,1,1],[1,0,0]]) 如何在不更改1的情况下将0更改为-1?
发布于 2017-03-18 23:36:18
正如在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的地方使用第二个参数,否则使用第二个参数项。
https://stackoverflow.com/questions/42875900
复制相似问题