Die Standardanzeige für Arrays eine gleichmäßige Feldbreite pro Element, nicht ein gleichmäßiger Abstand:
In [30]: x=np.array([11,223,3])
In [31]: x
Out[31]: array([ 11, 223, 3])
In [32]: x.tolist() # list display with uniform spacing
Out[32]: [11, 223, 3]
Effektiv numpy
ein Format wie verwendet:
In [35]: fmt = ' '.join(['%3d','%3d','%3d'])
In [36]: fmt
Out[36]: '%3d %3d %3d'
In [37]: fmt%tuple(x)
Out[37]: ' 11 223 3'
np.savetxt
ist, dass, nur unter Verwendung von die fmt
und delimiter
, die Sie bereitstellen.
csv
steht für "Komma getrennt". Tabs werden ebenfalls verwendet. Wenn "white space" verwendet wird, sind gute Leser genauso glücklich mit einem, zwei oder mehr "Leerzeichen". Solche Tabellen werden normalerweise so formatiert, dass die Spalten ausgerichtet bleiben und der Abstand zwischen den Zahlen nicht konstant bleibt.
A 3 Reihenanordnung mit Misch Anzahl Größen:
In [39]: x=np.array([[1,123,32],[34,1,2],[0,23,1000]])
In [40]: x
Out[40]:
array([[ 1, 123, 32],
[ 34, 1, 2],
[ 0, 23, 1000]])
Feste Breite CSV Formatierung:
In [41]: np.savetxt('test.csv',x,fmt='%5d', delimiter=',')
In [42]: cat test.csv
1, 123, 32
34, 1, 2
0, 23, 1000
begrenzt reading:
In [43]: np.genfromtxt('test.csv',delimiter=',',dtype=None)
Out[43]:
array([[ 1, 123, 32],
[ 34, 1, 2],
[ 0, 23, 1000]])
Der Standardmodus für Split Verwendungen Python Zeichenfolge verallgemeinerter Leerraum:
In [44]: ' 11 223 3'.split()
Out[44]: ['11', '223', '3']
Hier ist ein Beispiel einer CSV mit konstantem Abstand (und variabler Breite)
In [45]: np.savetxt('test.csv',x,fmt='%d', delimiter=' ')
In [46]: cat test.csv
1 123 32
34 1 2
0 23 1000
np.genfromtxt('test.csv',dtype=None)
liest es gut.
Wie speichern Sie es in CSV? Sie sollten dieses Format nicht in CSV speichern. Speichern Sie die Daten im CSV-Format, nicht im Anzeigeformular. – BrenBarn
Ist die CSV-Datei tatsächlich so angeordnet, wie es beim "Repr" des Numy-Arrays der Fall ist? Dies scheint entweder ein Nicht-Problem (ein Problem, das nicht wirklich ein echtes Problem ist) oder du machst etwas sehr merkwürdiges mit deinem numpigen Array, das den Raum von seinem "repr" bewahrt. – Blckknght
['pandas.DataFrame.to_csv()'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html) schreibt standardmäßig in das komprimierte CSV-Standardformat. Also wird 'array ([11, 22, 3])' ohne Header als '11,22,3' geschrieben. Dies ist kein Problem. – MattDMo