Размеры массива не совпадают - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть массив numpy, и когда я его печатаю, я получаю этот вывод.Но я ожидал получить (105835, 99, 13) как вывод при печати печати (feat.shape) и ожидал, что feat будет иметь 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 голосов
/ 01 декабря 2018

ту же структуру можно создать более простым способом:

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 ]]])

С будет иметь тип с плавающей точкой, унаследованный от базового типа d.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...