ich ein ndarray
aus einer txt-Datei erstellt numpy.genfromtxt
verwenden. Die TXT-Datei wie folgt aussieht:Einfügen von Spalten in ndarray mit erstellt numpy.genfromtxt
2505000
10.316 1.936 0.025 0 15 0 0
10.316 1.937 0.028 0 15 0 0
10.316 1.943 0.028 0 15 0 0
10.316 1.954 0.022 0 9 58 0
10.316 1.955 0.026 0 9 58 0
ich das Lesen leite die Daten mit:
data = np.genfromtxt(fname,
skip_header =1,
dtype = [('X','f'),('Y','f'),('Z','f'),('V', 'i'),('T', 'i')],
usecols = (0,1,2,4,5))
ich jetzt versuchen, die vierte Spalte (die, die ich V
genannt) zu kopieren und legen Sie ihn einfach nach selbst (vor der letzten T
Spalte).
Ich weiß, dass ich die Spalte kopieren kann, indem Sie data['V']
tun, aber wie platziere ich diese Kopie zwischen V
und T
(die 4. und 5. Spalten)? Ich habe mich numpy.insert
angesehen, aber ich bin nicht sicher, wie man den Index angibt (das obj
Argument). Ich versuchte mit numpy.insert(data_copy, data_copy['T'],data_copy['V'])
ohne Glück (ich erhielt IndexError: index 61 is out of bounds for size 20
).
Sie haben eine neue dtype mit dem zusätzlichen Feld zu machen, und kopieren Sie Werte von Feldnamen aus dem ursprünglichen Array zu der Neue. – hpaulj
Schauen Sie sich 'von numpy.lib Importfunktionen 'an. http://stackoverflow.com/a/27952861/901925 – hpaulj
@hpaulj danke, ich durch die Kombination von recfunctions.append_fields und recfunctions.drop_fields gelöst, obwohl ich nicht eine Insert Position angeben. Wenn keine andere Lösung gefunden wird und Sie Ihren Kommentar gerne beantworten möchten, würde ich mich freuen, ihn zu akzeptieren. – umbe1987