Sto avendo qualche problema apparentemente banale con numpy quando la matrice contiene dati di stringa. Ho il seguente codice:Comportamento strano inizializzazione di una matrice numpy di dati di stringa
my_array = numpy.empty([1, 2], dtype = str)
my_array[0, 0] = "Cat"
my_array[0, 1] = "Apple"
Ora, quando stampo con print my_array[0, :]
, la risposta che ottengo è ['C', 'A']
, che non è chiaramente il risultato atteso di Cat e Apple. Perché è così, e come posso ottenere il risultato giusto?
Grazie!
Questo è corretto, buono a sapersi! Grazie – Jim
Una volta che aggiorno un elemento nella lista (i.e 'my_array [0] = 'hello''), quel primo elemento ha ancora" 10 caratteri "di memoria allocata? O è veramente un oggetto "S5"? Presumo di no, dal momento che il 'dtype' di una matrice' numpy' deve essere coerente attraverso l'intero array? – Anonymous
@jphollowed: A destra, la dimensione è fissa per l'intero array, quindi se lo si inizializza come S10, utilizzerà comunque fino a 10 byte per ogni voce, anche se le stringhe effettivamente memorizzate sono più piccole. – BrenBarn