首页 文章

Numpy矩阵到数组

提问于
浏览
117

我正在使用numpy . 我有一个包含1列和N行的矩阵,我想从N个元素中获取一个数组 .

例如,如果我有 M = matrix([[1], [2], [3], [4]]) ,我想得到 A = array([1,2,3,4]) .

为了实现它,我使用 A = np.array(M.T)[0] . 有谁知道更优雅的方式来获得相同的结果?

谢谢!

8 回答

  • 5

    如果您想要更具可读性的东西,可以这样做:

    A = np.squeeze(np.asarray(M))
    

    同样地,您也可以这样做: A = np.asarray(M).reshape(-1) ,但这不太容易阅读 .

  • 10
  • 6
    A, = np.array(M.T)
    

    取决于你的优雅我的意思,但这就是我会做的

  • 154

    您可以尝试以下变体:

    result=np.array(M).flatten()
    
  • 2

    或者你可以尝试避免一些临时性

    A = M.view(np.ndarray)
    A.shape = -1
    
  • 2
    np.array(M).ravel()
    

    如果你关心速度;但如果你关心记忆:

    np.asarray(M).ravel()
    
  • 5

    首先, Mv = numpy.asarray(M.T) ,它为您提供4x1但2D数组 .

    然后,执行 A = Mv[0,:] ,它可以为您提供所需的内容 . 你可以将它们放在一起,如 numpy.asarray(M.T)[0,:] .

  • 98

    这会将矩阵转换为数组

    A = np.ravel(M).T
    

相关问题