我有一个120000*4 numpy数组,如下所示。每行都是一个示例。第一列是time in second,或使用pandas术语的index

0.014      14.175  -29.97  -22.68
0.022      13.905  -29.835 -22.68
0.030      12.257  -29.32  -22.67
... ...
1259.980   -0.405   2.205   3.825
1259.991   -0.495   2.115   3.735

我要选择记录在100.000到200.000秒之间的行,并将其保存到新的数组中。如果这是熊猫数据帧,我只需编写df.loc[100:200]。numpy中的等效操作是什么?
这不是可行性问题。我只是想知道是否有任何蟒蛇单线解决方案。

最佳答案

这假定索引已排序:
IIUC

x=np.array([ [1,2,3,4],
           [5,6,7,8],
           [9,10,11,12],
           [13,14,15,16]])

x[(x[:,0] >= 5) & (x[:,0] <= 9) ]

所以你会得到100和200而不是5和9。
有关更一般的解决方案,请检查Wen`s answer

关于python - 什么是Pandas中的dataframe.loc()的Numpy等价,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51508682/

10-10 18:00
查看更多