2016-04-10 2 views
1

Я пытаюсь сохранить массив 5D, и у меня есть эта ошибка.Numpy savetxt TypeErrror

> Traceback (most recent call last): File "model_3.py", line 53, in 
> <module> 
>  np.savetxt('../test_set/exp3/X.txt', X_test, delimiter=' ', fmt='%1.12f') File 
> "/home/jasper/.virtualenvs/thesis/local/lib/python2.7/site-packages/numpy/lib/npyio.py", 
> line 1160, in savetxt 
>  % (str(X.dtype), format)) TypeError: Mismatch between array dtype ('float64') and format specifier ('%1.12f %1.12f %1.12f') 
+0

'savetxt' предназначен для работы с 2-мерным массивом, например. один с формой '(3,5)' .. Я получаю сообщение об ошибке, если я пытаюсь сохранить массив '(2,3,5)', хотя и не такой же, как вы. Покажите 'X_test.shape' и' X_test.dtype', поэтому нет недоразумений относительно его формы. – hpaulj

ответ

1

savetxt перебирает 1 измерение вашего массива, и для каждой «строки» пытается сделать:

format % tuple(row) 

В format, что он построенный из вашей fmt и формы массива (X.shape[1]) является

'%1.12f %1.12f %1.12f' 

Если массив не 2d, то row не будет 1d, и это tuple(row) конверсия не будет соответствовать format.

savetxt предназначен для простых 2-мерных массивов (или 1d структурированных массивов), а не 5-й.