Mam pewne pozornie banalne problemy z numpy, gdy tablica zawiera dane ciągu. Mam następujący kod:Dziwne zachowanie inicjujące szeregową tablicę danych łańcuchowych
my_array = numpy.empty([1, 2], dtype = str)
my_array[0, 0] = "Cat"
my_array[0, 1] = "Apple"
Teraz, kiedy go wydrukować z print my_array[0, :]
, odpowiedź pojawia się ['C', 'A']
, co oczywiście nie jest oczekiwana produkcja skór z kotów i Apple. Dlaczego tak jest i jak mogę uzyskać odpowiedni wynik?
Dzięki!
To prawda, dobrze wiedzieć! Dzięki – Jim
Po aktualizacji elementu na liście (np. My_array [0] = 'hello''), czy ten pierwszy element nadal ma "10-znakową wartość" przydzielonej pamięci? Czy może jest to teraz obiekt "S5"? Zakładam, że nie, ponieważ tablica 'dtype' tablicy 'numpy' musi być spójna w całej tablicy? – Anonymous
@jphollowed: W prawo, rozmiar jest ustalony dla całej tablicy, więc jeśli zainicjujesz go jako S10, nadal będzie zużywał 10 bajtów dla każdego wpisu, nawet jeśli rzeczywiste łańcuchy, które przechowujesz, są mniejsze. – BrenBarn