如何将整数转换为Python中的逻辑数组

问题描述:

我想将一个数字(例如:3)转换为它的逻辑数组([0 0 1 0 0 0 0 0 0 0])。 在MATLAB中,我们可以使用如何将整数转换为Python中的逻辑数组

a = 1:10 
b = 3 
a == b 

那么,我们可以得到0 0 1 0 0 0 0 0 0 0。 我怎样才能得到它的蟒蛇,因为当我尝试这在Python中,我得到了:

In [220]: import numpy as np 

In [221]: a = np.arange(10) 

In [222]: b = 3 

In [223]: a == b 
Out[223]: array([False, False, False, True, False, False, False, False, False, False], dtype=bool) 
+0

在MATLAB中,该逻辑阵列被表示为0和1,而在Python/NumPy,它们被赋予True和False来表示。人们可能会建议你将类型转换为int dtype,但这不再是一个布尔/逻辑数组。 – Divakar

你可以将其转换为事后的整数:

(a == b).astype(int) 
+1

它的工作原理,谢谢! – Belter

您可以通过np.array(a == b).astype(np.int32) 更换a == b通过改变类型它将解决你的问题。

+0

你太快了! – Belter

+0

您可以使用'np.asarray'而不是'np.array'来避免复制。 – jdehesa

实际上,如果你蚂蚁的输出作为MATLAB相同,则需要

np.asarray(a + 1 == b).astype(np.int32) 

,或者定义a作为

a = np.arange(1,11)