将2D Numpy数组转换为一维列的列表

And*_*bis 3 python numpy

将2D numpy数组转换为1D列列表的最佳方法是什么?

例如,对于数组:

array([[ 0,  5, 10],
       [ 1,  6, 11],
       [ 2,  7, 12],
       [ 3,  8, 13],
       [ 4,  9, 14]])
Run Code Online (Sandbox Code Playgroud)

我想得到:

[array([0, 1, 2, 3, 4]), array([5, 6, 7, 8, 9]), array([10, 11, 12, 13, 14])]
Run Code Online (Sandbox Code Playgroud)

这有效:

[a[:, i] for i in range(a.shape[1])]
Run Code Online (Sandbox Code Playgroud)

但是我想知道使用纯Numpy函数是否有更好的解决方案?

Eri*_*ric 7

我想不出你需要什么理由

[array([0, 1, 2, 3, 4]), array([5, 6, 7, 8, 9]), array([10, 11, 12, 13, 14])]
Run Code Online (Sandbox Code Playgroud)

代替

array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14]])
Run Code Online (Sandbox Code Playgroud)

您可以轻松获得 a.T

如果您确实需要列表,则可以使用 list(a.T)