當數組包含字符串數據時,我遇到了numpy的一些看似微不足道的麻煩。我有以下代碼:奇怪的行爲初始化字符串數據的numpy數組
my_array = numpy.empty([1, 2], dtype = str)
my_array[0, 0] = "Cat"
my_array[0, 1] = "Apple"
現在,當我print my_array[0, :]
打印出來,我得到的迴應是['C', 'A']
,這顯然不是貓和蘋果的預期輸出。爲什麼是這樣,我怎樣才能得到正確的輸出?
謝謝!
這是正確的,很高興知道!謝謝 – Jim
一旦我更新列表中的一個元素(即'my_array [0] ='hello''),那麼第一個元素是否仍然具有分配的「10個字符值」的內存?還是現在真的是一個「S5」對象?我假設不是,因爲'numpy'數組的'dtype'必須在整個數組中保持一致? – Anonymous
@jphollowed:對,整個數組的大小是固定的,所以如果將它初始化爲S10,即使存儲的實際字符串較小,每個條目仍會佔用10個字節。 – BrenBarn