重塑numpy数组/嵌套数组

时间:2017-04-20 06:15:30

标签: python arrays numpy

我有一个特定的数组,比如a1,形状如下

a1.shape
(1L, 36L)

我想修改此数组的形状,以使所需的输出类似于

a1.shape
(1L,)
a1[0].shape
(36L,)

我怎样才能实现这个目标?

1 个答案:

答案 0 :(得分:0)

我怀疑你是否理解你的要求。但是这样做的方法(对于稍微小一点的阵列):

In [48]: a1=np.arange(6).reshape(1,6)
In [49]: a1.shape
Out[49]: (1, 6)
In [50]: a2=np.zeros((1,),dtype=object)
In [51]: a2[0]=a1[0]
In [52]: a2.shape
Out[52]: (1,)
In [53]: a2[0].shape
Out[53]: (6,)
In [54]: a1
Out[54]: array([[0, 1, 2, 3, 4, 5]])
In [55]: a2
Out[55]: array([array([0, 1, 2, 3, 4, 5])], dtype=object)

numpy在允许创建和使用多维数组时效果最佳。尝试创建一个数组或嵌套数组是可能的,但很难。

但也许你真正想要的是一个嵌套列表:

In [56]: al = a1.tolist()
In [57]: al
Out[57]: [[0, 1, 2, 3, 4, 5]]
In [58]: len(al)
Out[58]: 1
In [59]: len(al[0])
Out[59]: 6