Ich habe einige scheinbar triviale Probleme mit numpy, wenn das Array String-Daten enthält. Ich habe den folgenden Code:Seltsames Verhalten, das ein numpiges Array von String-Daten initialisiert
my_array = numpy.empty([1, 2], dtype = str)
my_array[0, 0] = "Cat"
my_array[0, 1] = "Apple"
Nun, wenn ich es mit print my_array[0, :]
drucken, die Antwort, die ich erhalten, ist ['C', 'A']
, was eindeutig nicht die erwartete Ausgabe von Cat und Apple ist. Warum ist das so, und wie kann ich die richtige Ausgabe erhalten?
Danke!
Das ist richtig, gut zu wissen! Danke – Jim
Sobald ich ein Element in der Liste (d. H. 'My_array [0] = 'hallo'') aktualisiere, hat dieses erste Element noch" 10-stelligen "Speicher zugewiesen? Oder ist es jetzt wirklich ein "S5" -Objekt? Ich nehme nicht an, da der 'dtype' eines' numpy' Arrays über das gesamte Array hinweg konsistent sein muss. – Anonymous
@jphollowed: Richtig, die Größe ist für das gesamte Array festgelegt. Wenn Sie es also als S10 initialisieren, verbraucht es immer noch 10 Byte für jeden Eintrag, auch wenn die tatsächlichen Zeichenfolgen, die Sie speichern, kleiner sind. – BrenBarn