Python 数据阵列列的一维数组

Python 数据阵列列的一维数组,python,arrays,numpy,multidimensional-array,Python,Arrays,Numpy,Multidimensional Array,这是我手头的阵列: [array([[[ 4, 9, 1, -3], [-2, 0, 8, 6], [ 1, 3, 7, 9 ], [ 2, 5, 0, -7], [-1, -6, -5, -8]]]), array([[[ 0, 2, -1, 6 ], [9, 8, 0, 3], [ -1, 2, 5, -4], [0, 5, 9, 6],

这是我手头的阵列:

[array([[[ 4, 9,  1, -3],
         [-2, 0, 8, 6],
         [ 1, 3, 7,  9 ],
         [ 2,  5, 0, -7],
         [-1, -6, -5, -8]]]),
 array([[[ 0,  2, -1, 6 ],
         [9,  8,  0,  3],
         [ -1, 2, 5, -4],
         [0,  5, 9, 6],
         [ 6, 2,  9, 4]]]),
 array([[[ 1,  2,  0, 9],
         [3,  4, 8, -1],
         [5,  6,  9,  0],
         [ 7, 8, -3, -],
         [9, 0,  8, -2]]])]
但目标是从嵌套数组的第一列获取数组
A
,从嵌套数组的第二列获取数组
B
,从嵌套数组的第三列获取数组
C
,等等

以便:

A = array([4, -2, 1, 2, -1, 0, 9, -1 ,0, 6, 1, 3, 5, 7, 9])
B = array([9, 0, 3, 5, -6, 2, 8, 2, 5, 2, 2,, 4, 6, 8, 0])
我该怎么做呢?

IIUC

l = [np.array([[[ 4, 9,  1, -3],
         [-2, 0, 8, 6],
         [ 1, 3, 7,  9 ],
         [ 2,  5, 0, -7],
         [-1, -6, -5, -8]]]),
 np.array([[[ 0,  2, -1, 6 ],
         [9,  8,  0,  3],
         [ -1, 2, 5, -4],
         [0,  5, 9, 6],
         [ 6, 2,  9, 4]]]),
 np.array([[[ 1,  2,  0, 9],
         [3,  4, 8, -1],
         [5,  6,  9,  0],
         [ 7, 8, -3, -9],
         [9, 0,  8, -2]]])]

a = np.hstack([i[0][:, 0] for i in l])
b = np.hstack([i[0][:, 1] for i in l])
输出:

array([ 4, -2,  1,  2, -1,  0,  9, -1,  0,  6,  1,  3,  5,  7,  9])
array([ 9,  0,  3,  5, -6,  2,  8,  2,  5,  2,  2,  4,  6,  8,  0])

您可以使用单个尺寸标注来执行此操作,并使用删除额外的尺寸标注。这样,您就可以使用常规的numpy索引来提取列(或任何您想要的内容):


这就是我想做的。。。我的numpy fu跟你不一样+1.
import numpy as np

l = [np.array([[[ 4, 9,  1, -3],
         [-2, 0, 8, 6],
         [ 1, 3, 7,  9 ],
         [ 2,  5, 0, -7],
         [-1, -6, -5, -8]]]),
     np.array([[[ 0,  2, -1, 6 ],
         [9,  8,  0,  3],
         [ -1, 2, 5, -4],
         [0,  5, 9, 6],
         [ 6, 2,  9, 4]]]),
     np.array([[[ 1,  2,  0, 9],
         [3,  4, 8, -1],
         [5,  6,  9,  0],
         [ 7, 8, -3, -1],
         [9, 0,  8, -2]]])]


arr = np.hstack(l).squeeze()

A = arr[:,0]
print(A)
# [ 4 -2  1  2 -1  0  9 -1  0  6  1  3  5  7  9]

B = arr[:,1]
print(B)
#[ 9  0  3  5 -6  2  8  2  5  2  2  4  6  8  0]
# etc...