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.])