Python 从numpy数组创建逻辑数组

Python 从numpy数组创建逻辑数组,python,arrays,numpy,Python,Arrays,Numpy,我在Python中有一个非常大的numpy数组,里面充满了气象数据。为了观察有缺陷的数据,我想查看每个值并测试它是否小于-1。最后,我想用一个0和1的逻辑数组来表示这一点,其中1表示值小于-1的索引,0表示所有其他索引。我试过使用numpy.where函数,如下所示 logarr = np.where(metdat < -1) logarr=np.其中(metdat

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

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

logarr = np.where(metdat < -1 [1,0])
logarr=np.其中(metdat<-1[1,0])
但是我的程序不喜欢这种语法。我做错了什么,或者有人会推荐一种更好的方法吗

谢谢,
jmatt

这适用于您的案例,它直接将类型从
逻辑
转换为
int

(matdat < -1).astype(int)

你把括号放错地方了。请尝试:
np.where(metdat<-1)[1][0]
或此版本。。。。a=np.数组([0,-2,1,1,0,-2,0]),使用。。。np.其中(a)
np.where(matdat < -1, 1, 0)