ValueError : définition d'un élément de tableau avec une séquence
Les tableaux NumPy sont des types de données structurés et, en tant que tels, ils ont des exigences strictes pour le éléments qu’ils contiennent. Lorsque vous travaillez avec des tableaux multidimensionnels ou des tableaux de types hétérogènes, vous pouvez rencontrer l'erreur suivante :
ValueError: setting an array element with a sequence.
Explorons les raisons possibles de cette erreur et comment les résoudre :
Création d'un tableau jagged :
Un tableau jagged est un tableau multidimensionnel où les lignes sont de longueurs différentes. NumPy ne prend pas en charge les tableaux irréguliers. Pour résoudre ce problème, vous devez vous assurer que les listes que vous utilisez pour créer le tableau ont le même nombre d'éléments dans chaque ligne :
# Correct numpy.array([[1, 2], [3, 4]])
# Incorrect numpy.array([[1, 2], [2, 3, 4]])
Types d'éléments incompatibles :
Lors de la création d'un tableau à partir d'une liste d'éléments de différents types, vous devrez peut-être spécifier explicitement le type de données. Par défaut, NumPy attribue le type de données le plus général pouvant accueillir tous les éléments. Cependant, si vous tentez d'insérer un élément d'un type incompatible, vous rencontrerez cette erreur.
Par exemple, le code suivant entraînera une erreur car le deuxième élément est une chaîne :
numpy.array([1.2, "abc"], dtype=float)
Pour résoudre ce problème, vous pouvez soit convertir tous les éléments dans le même type de données, soit utiliser le type de données objet, qui autorise les éléments de types arbitraires :
# Convert to float numpy.array([float(x) for x in [1.2, "abc"]]) # Use object data type numpy.array([1.2, "abc"], dtype=object)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!