将numpy数组值从0更改为1

2024-04-29 18:54:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由随机排列的1和0组成的numpy数组。你知道吗

numpy.array([[0,1,1],[1,0,0]]) 

我怎样才能在不改变1的情况下把0改成-1呢?你知道吗


Tags: numpy情况数组array
1条回答
网友
1楼 · 发布于 2024-04-29 18:54:21

正如在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](仅获取掩码为真的数组的值,在本例中,值为0)的中间步骤,以了解发生了什么。你知道吗

或者,如果要创建替换了值的数组副本,则有^{}

>>> np.where(arr==0, -1, arr)
array([[-1,  1,  1],
       [ 1, -1, -1]])

这将创建一个新数组,并在条件(第一个参数)为True时使用第二个参数,否则将使用第二个参数项。你知道吗

相关问题 更多 >