我的 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]])
关于Python3,将MATLAB数组代码转换为Python版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49092467/