配列に文字列データが含まれていると、numpyのような面倒な問題が発生しています。私は次のコードを持っている:私はprint my_array[0, :]
でそれを印刷するとき、今すぐnumpy配列の文字列データを初期化する奇妙な振る舞い
my_array = numpy.empty([1, 2], dtype = str)
my_array[0, 0] = "Cat"
my_array[0, 1] = "Apple"
を、私が得る応答は明らかに猫とアップルの期待出力されない、['C', 'A']
です。それはなぜですか、そして、どうすれば正しい出力を得ることができますか?
ありがとうございます!
これは間違いなく、知っておいてよかったです!ありがとう – Jim
リストの要素を更新すると(つまり、my_array [0] = 'hello'')、その最初の要素にはまだ "10文字分の"メモリが割り当てられていますか?それとも本当に「S5」のオブジェクトですか? 'numpy'配列の' dtype'は配列全体で一貫していなければならないので、私は仮定しません。 – Anonymous
@jphollowed:右は、配列全体のサイズが固定されているため、S10として初期化すると、格納する実際の文字列が小さい場合でも各エントリに10バイトを使います。 – BrenBarn