質問: 環境:VScode 突然、numpyの配列の代入がおかしなことになりました。 今朝までは問題なく処理できていたのですが、 突然、3文字しか代入されなくなりました(画像を添付しておきます) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/da249700bb4d81bcc321cb5af05fb8a6.png) データフレームの2番目の要素に標準以下という文字列が入っています。 これを左辺のデータフレームの0番目の要素に代入すると ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/a774e82b8081f5c18cc931e81b02d245.png) 3文字までしか代入されていません。 文字数に関係なく4文字目以降は削除されています。 この現象について何かご存知の方はおられますでしょうか。 何が起きたのかも分からず、対処の方法も分からずで困り果てています。 関係ないとは思いますが ターミナルの表示をchcp 65001で日本語表示に変えました。 よろしくお願いいたします。 ※追記 未加工の画像を投稿します。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/56df400bc25f603be31b6dd80bb88458.png)
回答: 文字列型をnumpy配列に格納した場合、デフォルトでは固定長フォーマットで表現されます。この場合、配列作成時に入れた文字列の最大長で揃えられ、代入によってはみ出た分は捨てられます。 また、numpy配列の型にはpythonオブジェクトへの参照を指定することもできます。そちらの方が扱いやすいかもしれません。 私のブログですが、よろしければ参考にしてください。 numpy配列に文字列を格納した場合の型と挙動 - 静かなる名辞