【发布时间】:2021-08-11 00:40:37
【问题描述】:
我目前正在将 MATLAB 脚本翻译成 python。在 MATLAB 代码中有一个步骤,我需要根据具有相同维度的布尔矩阵从矩阵(二维数组)中选择条目。当我尝试在 Python 中编写等效代码时,我注意到结果数组中的元素与 MATLAB 相比的顺序不同。更准确地说,MATLAB 似乎按列顺序选择元素,而 Python 按行顺序选择元素。有没有办法让 Python 按 MATLAB 顺序输出数组?
小例子:
MATLAB:
a = [1, 2, 3; 4, 5, 6; 7, 8, 9];
b = [false, false, true; false, false, false; true, false, false];
a(b) % outputs [7;3] or [a(3,1); a(1,3)]
Python:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]))
b= np.array([[False, False, True], [False, False, False], [True, False, False]]))
a[b] # outputs array([3,7]) or array([a[0,2], a[2,0])
【问题讨论】:
标签: python arrays numpy matlab