数组的维数不匹配

2024-10-06 12:18:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个numpy数组,当我打印它时,我得到这个输出。但我希望在打印打印时得到(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

我不知道如何减少这个。但是feat是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)

Tags: numpysizeobject数组特性array形状print
1条回答
网友
1楼 · 发布于 2024-10-06 12:18:42

可以用更简单的方法创建相同的结构:

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将从基数据类型继承浮点类型。你知道吗

相关问题 更多 >