阵列尺寸不匹配

时间:2018-12-01 13:28:06

标签: python arrays numpy

我有一个numpy数组,当我打印它时,得到此输出。但是我期望在打印print(feat.shape)时获得(105835,99,13)作为输出,并且希望专长具有3个尺寸。

print(feat.ndim)
print(feat.shape)
print(feat.size)
print(feat[1].ndim)    
print(feat[1].shape)    
print(feat[1].size)`    

1    
(105835,)    
105835    
2    
(99, 13)    
1287

我不知道如何减少这种情况。但是壮举是MFCC功能。如果我打印出了壮举,这就是我得到的。

array([array([[-1.0160675e+01, -1.3804866e+01,  9.1880971e-01, ...,
     1.5415058e+00,  1.1875046e-02, -5.8664594e+00],
   [-9.9697800e+00, -1.3823588e+01, -7.0778362e-02, ...,
     1.5948311e+00,  4.3481258e-01, -5.1646194e+00],
   [-9.9518738e+00, -1.2771760e+01, -1.2623003e-01, ...,
     3.4290311e+00,  2.7361808e+00, -6.0621500e+00],
   ...,
   [-11.605266 ,  -7.1909204, -33.44656  , ..., -11.974911 ,
     12.825395 ,  10.635098 ],
   [-11.769397 ,  -9.340318 , -34.413307 , ..., -10.077869 ,
      8.821722 ,   7.704534 ],
   [-12.301968 , -10.67318  , -32.46104  , ...,  -6.829077 ,
     15.29837  ,  13.100596 ]], dtype=float32)], dtype=object)

1 个答案:

答案 0 :(得分:2)

可以通过更简单的方法来创建相同的结构:

ain=rand(2,2)
a=ndarray(3,dtype=object)
a[:] = [ain]*3

#array([array([[ 0.14,  0.56],
#              [ 0.9 ,  0.9 ]]),
#       array([[ 0.14,  0.56],
#              [ 0.9 ,  0.9 ]]),
#       array([[ 0.14,  0.56],
#              [ 0.9 ,  0.9 ]])], dtype=object)

出现问题是因为a.dtype是对象。您可以通过以下方式重建数据:

a= array(list(a))

#array([
#   [[ 0.14,  0.56],
#    [ 0.9 ,  0.9 ]],

#   [[ 0.14,  0.56],
#    [ 0.9 ,  0.9 ]],

#   [[ 0.14,  0.56],
#    [ 0.9 ,  0.9 ]]])

With将具有从基本dtype继承的float类型。

相关问题