Boolean,Flatnonzero,在python中选择numpy中的某个范围

时间:2016-12-07 21:08:08

标签: python-3.x numpy indexing

我在.txt中有一个由2列组成的数据文件。第一个是我的x值,第二个列是我的y值。

我想要做的很简单。我想确定我的x值在哪里=> 1700和< = 1735,以便我可以得到该x范围内的相应y值。最后,我想得到那些y值的总和。

以下是我写的代码。

import numpy as np

data = np.loadtxt('NI2_2.txt')
x_all= data[:,0]
y_all= data[:,1]
x_selected= np.flatnonzero(np.logical_and(x_all<=1700),(x_all=>1735))
y_selected= y_all[x_selected]
y_final= np.sum(y_selected)

我收到x_selected的错误消息,说法语不正确。有人看到它有什么问题吗?

谢谢! Cece

2 个答案:

答案 0 :(得分:1)

尝试使用np.where

y_selected = y_all[np.where((x_all >= 1700) & (x_all <= 1735))]
y_final = np.sum(y_selected)

编辑: 你也不能在python中写=>。使用>=

答案 1 :(得分:1)

可能只是因为比较操作数是&gt; =而不是=&gt;但是我不能再进一步了,抱歉。