修正方法: valueerror: 配列要素をシーケンスで設定する


Python の使用時に発生する可能性のあるエラーは次のとおりです。

 ValueError : setting an array element with a sequence.

このエラーは通常、複数の数値を NumPy 配列内の 1 つの位置にグループ化しようとしたときに発生します。

次の例は、このエラーを実際に修正する方法を示しています。

エラーを再現する方法

次の NumPy 配列があるとします。

 import numpy as np

#create NumPy array
data = np. array ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

ここで、配列の最初の位置に 2 つの数値を配置しようとしているとします。

 #attempt to cram values '4' and '5' both into first position of NumPy array
data[0] = np. array ([4,5])

ValueError : setting an array element with a sequence.

このエラーは、何が間違っていたのかを正確に示しています。NumPy 配列の要素を値のシーケンスで定義しようとしました。

特に、NumPy 配列の最初の位置に値「4」と「5」を配置しようとしました。

これは不可能であるため、エラーが発生します。

エラーを修正する方法

このエラーを修正する方法は、単に配列の最初の位置に値を代入することです。

 #assign the value '4' to the first position of the array
data[0] = np. array ([4])

#view updated array
data

array([ 4, 2, 3, 4, 5, 6, 7, 8, 9, 10])

エラーは発生しないことに注意してください。

実際に 2 つの新しい値を配列要素に割り当てたい場合は、次の構文を使用する必要があります。

 #assign the values '4' and '5' to the first two positions of the array
data[0:2] = np. array ([4, 5])

#view updated array
data

array([ 4, 5, 3, 4, 5, 6, 7, 8, 9, 10])

表内の最初の 2 つの値は変更されていますが、他のすべての値は同じままであることに注意してください。

追加リソース

次のチュートリアルでは、Python の他の一般的なエラーを修正する方法を説明します。

パンダの KeyError を修正する方法
修正方法: ValueError: float NaN を int に変換できません
修正方法: ValueError: オペランドをシェイプでブロードキャストできませんでした

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です