【发布时间】:2018-01-21 08:00:00
【问题描述】:
我必须在 MATLAB 和 NumPy (Python 3.x) 之间切换。总是给我带来问题的是 NumPy 中向量的使用方式。在 MATLAB 中,向量或多或少只是一个 1xn 或 nx1 矩阵。举个例子:
b=np.array([0,2])
是一个 (2,) 数组,实际上它对任何矩阵运算都没有用,因为在这种情况下,我必须先执行 b.reshape(2,1) 之类的操作。几乎在任何时候,我都必须重塑函数返回的向量/数组。有人能告诉我为什么 NumPy 数组默认不被视为列或行向量吗?而且因为我必须经常这样做……重塑是最好的方法吗?
【问题讨论】:
-
如果我需要一个 (n,1) 数组,我通常使用
b[:, None]。numpy通常将 (n,) 数组视为 (1,n),即如果需要,它会在开始时添加新的暗淡。 Matlab 在另一端消耗 dims。