ホームページ > バックエンド開発 > Python チュートリアル > NumPy で「ValueError: set an array element with a sequence」が発生するのはなぜですか?

NumPy で「ValueError: set an array element with a sequence」が発生するのはなぜですか?

Patricia Arquette
リリース: 2024-12-03 22:52:11
オリジナル
228 人が閲覧しました

Why am I getting a

ValueError: シーケンスを使用した配列要素の設定

NumPy 配列は構造化データ型であるため、それらに含まれる要素。多次元配列または異種型の配列を操作する場合、次のエラーが発生する場合があります:

ValueError: setting an array element with a sequence.
ログイン後にコピー

このエラーの考えられる原因とその解決方法を調べてみましょう:

ギザギザ配列の作成:

ギザギザ配列は、行が異なる多次元配列です。長さ。 NumPy はギザギザ配列をサポートしていません。この問題を解決するには、配列の作成に使用しているリストの各行の要素数が同じであることを確認する必要があります:

# Correct
numpy.array([[1, 2], [3, 4]])
ログイン後にコピー
# Incorrect
numpy.array([[1, 2], [2, 3, 4]])
ログイン後にコピー

互換性のない要素タイプ:

異なる型の要素のリストから配列を作成する場合、データ型を明示的に指定する必要がある場合があります。デフォルトでは、NumPy はすべての要素に対応できる最も一般的なデータ型を割り当てます。ただし、互換性のない型の要素を挿入しようとすると、このエラーが発生します。

たとえば、次のコードは 2 番目の要素が文字列であるため、エラーになります。

numpy.array([1.2, "abc"], dtype=float)
ログイン後にコピー

この問題を解決するには、すべての要素を同じデータ型に変換するか、任意の型の要素を許可するオブジェクト データ型を使用します:

# Convert to float
numpy.array([float(x) for x in [1.2, "abc"]])

# Use object data type
numpy.array([1.2, "abc"], dtype=object)
ログイン後にコピー

以上がNumPy で「ValueError: set an array element with a sequence」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート