我有两个数组。假设他们看起来像这样:

    time1 = [ 1 2 3 ] and time2 = [ 2 4 6]
            [ 4 5 6 ]
            [ 7 8 9 ]


我只想从time1中选择第一列在time2范围内的行。例如,从该数据集中,我将绘制[4 5 6]行,因为4在2-6的范围内。我试图从数组time1中选择行,如下所示:

selectedtimes = time1(any(time1[:,0] < time2[-1]) and any(time1[:,0] > time2[0]))


我目前收到对象无法调用的错误(如下所示),并且卡住了。有没有更好的方法来重写此行?

'numpy.ndarray' object is not callable


帮助赞赏!

最佳答案

您可以在此处使用numpy.logical_and

>>> np.logical_and(time1[:,0] > time2[0], time1[:,0] < time2[-1] )
array([False,  True, False], dtype=bool)
>>> time1[np.logical_and(time1[:,0] > time2[0], time1[:,0] < time2[-1] )]
array([[4, 5, 6]])

09-27 07:36