Python3,将 MATLAB 数组代码转换为 Python 版本?

Python3, converting MATLAB array code to Python version?

我有一个如下所示的 MATLAB 代码:

dindex =find(H2(:,1)>=2400)
H2     =H2(dindex,:);

我找到二维数组 H2 的所有行,其中它的第一列大于 2400。

如何在 Python 中完成?

我建议为此使用 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]])