我有一个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/