ValueError: 配列要素をシーケンスで設定する 質問する

ValueError: 配列要素をシーケンスで設定する 質問する

次のコードサンプルを実行する理由:

np.array([[1, 2], [2, 3, 4]])

np.array([1.2, "abc"], dtype=float)

すべて次のエラーが発生しますか?

ValueError: setting an array element with a sequence.

ベストアンサー1

考えられる理由1: 不規則な配列を作成しようとしている

多次元配列のような形ではないリストから配列を作成している可能性があります。

numpy.array([[1, 2], [2, 3, 4]])         # wrong!
numpy.array([[1, 2], [2, [3, 4]]])       # wrong!

これらの例では、引数にnumpy.array長さの異なるシーケンスが含まれています。入力リストが多次元配列に変換できる「ボックス」のような形状ではないため、このエラー メッセージが表示されます。

考えられる理由2: 互換性のない型の要素を提供している

たとえば、 型の配列の要素として文字列を指定するとfloat

numpy.array([1.2, "abc"], dtype=float)   # wrong!

本当に文字列と浮動小数点数の両方を含む NumPy 配列が必要な場合は、 dtype を使用できますobject。これにより、配列に任意の Python オブジェクトを保持できるようになります。

numpy.array([1.2, "abc"], dtype=object)

おすすめ記事