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

标签 python arrays matlab 2d nested-lists

我的 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/

相关文章:

python - python 多处理的内存使用情况

python - 将 Sublime Text 2 包定向到正确的 python 安装

java - Java对二维数组求和的方法

c++ - 从 DLL 调用 MATLAB

matlab - 如何在Matlab中使标题仅解释标题字符串的一部分

arrays - MATLAB:将多维数组中的子数组删除为一个数组

python - 使用 Paramiko 在后台运行无限 Bash 循环

python - Requests.get 显示与 Chrome 开发者工具不同的 HTML

arrays - 如何在 Swift 3 中将十六进制转换为十进制? (没有第三方库和Foundation的自写代码)

C程序查找数字序列中缺失的整数