我有一个特定的数组,比如a1,形状如下
a1.shape
(1L, 36L)
我想修改此数组的形状,以使所需的输出类似于
a1.shape
(1L,)
a1[0].shape
(36L,)
我怎样才能实现这个目标?
答案 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