从numpy数组创建逻辑数组

时间:2016-07-02 18:27:43

标签: python arrays numpy

我在Python中有一个非常大的numpy数组,里面充满了气象数据。为了观察有缺陷的数据,我想查看每个值并测试它以查看它是否小于-1。最后,我想用0和1的逻辑数组来表示这个,其中1表示索引,其中值小于-1,零代表所有其他索引。我尝试使用numpy.where功能如下

logarr = np.where(metdat < -1)

,当此条件为真时返回原始数组和零数组(大约200次)。我尝试使用Sci.Py.org中的numpy.where语法

logarr = np.where(metdat < -1 [1,0])

但我的程序不喜欢语法。我做错了什么或者有人会建议更好的方法来解决这个问题吗?

谢谢, jmatt

1 个答案:

答案 0 :(得分:1)

这适用于您的案例,可直接将类型从logical转换为int

(matdat < -1).astype(int)

或者对于np.where,语法必须是:

np.where(matdat < -1, 1, 0)