Python 将数组转换为正指示符

Python 将数组转换为正指示符,python,matlab,numpy,Python,Matlab,Numpy,假设我们有一个数组,如: [-2,4,3,-1,2] 我们如何在python中将其转换为正指示符数组 [0,1,1,0,1] 我知道如何在MATLAB中执行此操作,但在python中不知道 如果您将此标记为numpy,我认为您需要基于此的解决方案: In [188]: L = [-2,4,3,-1,2] In [189]: [int(i>0) for i in L] Out[189]: [0, 1, 1, 0, 1] import numpy as np a = np.array(

假设我们有一个数组,如:

[-2,4,3,-1,2]
我们如何在
python
中将其转换为正指示符数组

[0,1,1,0,1]

我知道如何在
MATLAB
中执行此操作,但在
python
中不知道

如果您将此标记为numpy,我认为您需要基于此的解决方案:

In [188]: L = [-2,4,3,-1,2]

In [189]: [int(i>0) for i in L]
Out[189]: [0, 1, 1, 0, 1]
import numpy as np
a = np.array([-2,4,3,-1,2])
positive_indicator = np.int64(a > 0)

您可以为结果使用任何需要的数据类型。所以
np.int8
也会起作用。

实际上,有numpy的-函数

>>> x = [-2,4,3,-1,2]                                                                                                                                                                                  
>>> map(lambda x: 1 if x > 0 else 0, x)
[0, 1, 1, 0, 1]

请注意,heaviside函数中的第二个参数表示如何使用
numpy
映射0,它与Matlab中的不完全相同吗?此页如此精简:它返回一个逻辑数组。我想我应该把逻辑数组变成
0,1
array。谢谢,在你解释这段代码应该如何工作之前,-1.没有解释-1.
import numpy as np
a = np.array([-2,4,3,-1,2])
np.where(a>0,1,0)
import numpy as np
a = np.array([-2,4,3,-1,2])
np.heaviside(a, 0)

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