如何创建具有相同形状的包含多个数组的列表的布尔数组

问题描述 投票:0回答:0

我有一个包含多个相同大小数组的列表。我想创建一个具有相同形状的 0-1 数组,其中列表中等于用户定义值的每个元素都应在 0-1 数组中设置为 0。

import numpy as np

y = ([np.array([[1., 0., 0.],
        [0., 0., 1.],
        [0., 0., 1.]], dtype='float32'),
   np.array([[0., 0., 1.],
        [0., 0., 1.],
        [1., 0., 0.]], dtype='float32'),
   np.array([[   0.,    0.,    1.],
        [   1.,    0.,    0.],
        [-100., -100., -100.]], dtype='float32')])

x = np.ones_like(y)
x[y == -100.] = 0
print(x)

array([[[1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.]],

       [[1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.]],

       [[1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.]]], dtype=float32)

在当前版本中,

x
中的每个元素都设置为1。如果我将
concatenate
用于
y
,它可以工作,但它不再是相同的形状。

python list numpy boolean
© www.soinside.com 2019 - 2024. All rights reserved.