【问题标题】:Convert multidimesnional matrix to a one dimensional vector将多维矩阵转换为一维向量
【发布时间】:2015-09-09 14:09:17
【问题描述】:

我有一个 MxN numpy 矩阵,并希望将其制成一个一维向量,该向量仅将每一行逐个堆叠。基本上是这样的......

[x11, x12 ... x1m
 x21, x22 ... x2m
 .
 .
 xn1, xn2 ... xnm]

去这个...

[x11, x12 ... x1m, x21, x22 ... x2m ... xn1, xn2 ... xnm]

最好/最有效的方法是什么?

【问题讨论】:

    标签: python arrays numpy matrix


    【解决方案1】:

    你可以.ravel
    来自docs

    >>> x = np.array([[1, 2, 3], [4, 5, 6]]) 
    >>> print np.ravel(x)
    [1 2 3 4 5 6]
    

    【讨论】:

      【解决方案2】:

      您也可以.reshape(),尽管此方法要求您知道输出数组的目标形状(至少除一个轴之外的所有轴)。

      >>> import numpy as np
      >>> foo = np.array([[1, 2, 3], [4, 5, 6]])
      >>> foo.reshape(1, 6)
      array([[1, 2, 3, 4, 5, 6]])
      

      比较:

      >>> foo.reshape(-1, 1)
      array([[1],
             [2],
             [3],
             [4],
             [5],
             [6]])
      

      【讨论】: