Maison > développement back-end > Tutoriel Python > Pourquoi est-ce que je reçois une « ValueError : définition d'un élément de tableau avec une séquence » dans NumPy ?

Pourquoi est-ce que je reçois une « ValueError : définition d'un élément de tableau avec une séquence » dans NumPy ?

Patricia Arquette
Libérer: 2024-12-03 22:52:11
original
231 Les gens l'ont consulté

Why am I getting a

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.
Copier après la connexion

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]])
Copier après la connexion
# Incorrect
numpy.array([[1, 2], [2, 3, 4]])
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal