我有一个如下所示的MATLAB代码:
dindex =find(H2(:,1)>=2400)
H2 =H2(dindex,:);
我找到了一个二维数组H2的所有行,其第一列大于2400。
如何在Python中完成?
答案 0 :(得分:1)
我建议使用numpy
,这是一个非常强大的python库,使得这类任务变得微不足道。
numpy.where()
正是您在寻找的目标:
>>> import numpy as np
>>> arr = np.array([[2500, 1, 1, 1, 1], [2300, 1, 1, 1, 1], [2600, 1, 1, 1, 1]])
>>> arr
array([[2500, 1, 1, 1, 1],
[2300, 1, 1, 1, 1],
[2600, 1, 1, 1, 1]])
>>> np.where(arr[:,0] >= 2400)
(array([0, 2], dtype=int64),)
如果您只想保留符合此条件的行,可以使用numpy
索引执行此操作:
>>> arr = np.array([[2500, 1, 1, 1, 1], [2300, 1, 1, 1, 1], [2600, 1, 1, 1, 1]])
>>> arr
array([[2500, 1, 1, 1, 1],
[2300, 1, 1, 1, 1],
[2600, 1, 1, 1, 1]])
>>> arr = arr[np.where(arr[:,0] >= 2400)]
>>> arr
array([[2500, 1, 1, 1, 1],
[2600, 1, 1, 1, 1]])