2016-04-10 11 views
1

5D dizisini kaydetmeye çalışıyorum ve bu hatayı yaşıyorum.Numpy savetxt TypeErrror

format % tuple(row) 

sizin fmt ve dizilim şekli (X.shape[1]) yapılmış format şöyledir:

> 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' 2d dizisiyle çalışmak üzere tasarlanmıştır, örn. '(3,5) 'şeklinde bir tane varsa, bir' (2,3,5) 'dizisini kaydetmeye çalışırsam bir hata alırım, tam olarak seninle aynı olmasa bile. "X_test.shape" ve "X_test.dtype" işlevlerini göster, böylece formu hakkında yanlış anlaşılma yok. – hpaulj

cevap

1

savetxt senin dizinin 1 boyutun üzerinde dolaşır ve her 'satırında' için yapmaya çalışır

'%1.12f %1.12f %1.12f' 

dizi değil 2d ise, row 1d olmayacak ve bu tuple(row) dönüşümü format eşleşmeyecek.

savetxt, 5d olanları değil, basit 2d dizileri (veya 1d yapılandırılmış diziler) için tasarlanmıştır.