首页 > 解决方案 > 从数字数组创建布尔数组

问题描述

所以说我们有一些价值观:

data = np.random.standard_normal(size = 10)

我希望我的函数输出一个数组,该数组标识数据中的值是否为正,例如:

[1, 0, 1, 1, 0, 1, 1, 0, 0, 0]

我试过了

def myfunc():
    for a in data > 0:
        if a:
            return 1
        else:
            return 0

但是我只得到随机数组数据中第一个值的布尔值,我不知道如何循环这个函数来输出一个数组。

谢谢

标签: pythonarrays

解决方案


使用 numpy 非常简单:

posvals = data > 0
>> [True, False, True, True, False, True, True, False, False, False]

如果您明确想要 1 和 0:

posvals.astype(int)
>> [1, 0, 1, 1, 0, 1, 1, 0, 0, 0]

推荐阅读