小编典典

如何将布尔数组转换为int数组

all

我使用 Scilab,并希望将布尔数组转换为整数数组:

>>> x = np.array([4, 3, 2, 1])
>>> y = 2 >= x
>>> y
array([False, False,  True,  True], dtype=bool)

在 Scilab 我可以使用:

>>> bool2s(y)
0.    0.    1.    1.

甚至只是将其乘以 1:

>>> 1*y
0.    0.    1.    1.

在 Python 中是否有一个简单的命令,或者我必须使用循环?


阅读 118

收藏
2022-08-19

共1个答案

小编典典

Numpy 数组有一个astype方法。做吧y.astype(int)

请注意,甚至可能没有必要这样做,具体取决于您使用数组的目的。在许多情况下,Bool 会自动提升为 int,因此您可以将其添加到 int
数组中,而无需显式转换:

>>> x
array([ True, False,  True], dtype=bool)
>>> x + [1, 2, 3]
array([2, 2, 4])
2022-08-19