将数组转换为正指标

时间:2014-10-24 16:06:03

标签: python matlab numpy

假设我们有一个类似的数组:

[-2,4,3,-1,2]

我们如何将此转换为python中的正指标数组,以便我们

[0,1,1,0,1]

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

5 个答案:

答案 0 :(得分:4)

鉴于你用numpy标记了这个,我假设你想要一个基于它的解决方案:

import numpy as np
a = np.array([-2,4,3,-1,2])
positive_indicator = np.int64(a > 0)

您可以使用您想要的任何dtype来获得结果。所以np.int8也可以。

答案 1 :(得分:0)

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

In [189]: [int(i>0) for i in L]
Out[189]: [0, 1, 1, 0, 1]

答案 2 :(得分:0)

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

答案 3 :(得分:0)

import numpy as np
a = np.array([-2,4,3,-1,2])
np.where(a>0,1,0)

答案 4 :(得分:0)

实际上,有numpy的heaviside函数

import numpy as np
a = np.array([-2,4,3,-1,2])
np.heaviside(a, 0)

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

请注意,heaviside函数中的第二个参数指示0的映射方式