我使用 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 中是否有一个简单的命令,或者我必须使用循环?
Numpy 数组有一个astype方法。做吧y.astype(int)。
astype
y.astype(int)
请注意,甚至可能没有必要这样做,具体取决于您使用数组的目的。在许多情况下,Bool 会自动提升为 int,因此您可以将其添加到 int 数组中,而无需显式转换:
>>> x array([ True, False, True], dtype=bool) >>> x + [1, 2, 3] array([2, 2, 4])