假设我们有一个类似的数组:
[-2,4,3,-1,2]
我们如何将此转换为python
中的正指标数组,以便我们
[0,1,1,0,1]
我知道如何在MATLAB
中执行此操作,但不在python
中执行此操作。
答案 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的映射方式