Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment réparer : seuls les tableaux scalaires entiers peuvent être convertis en index scalaire



Une erreur que vous pouvez rencontrer lors de l’utilisation de Python est :

TypeError: only integer scalar arrays can be converted to a scalar index

Cette erreur se produit généralement pour l’une des deux raisons suivantes :

1. Vous avez tenté d’effectuer une indexation de tableau sur une liste.

2. Vous avez tenté de concaténer deux matrices en utilisant une syntaxe incorrecte.

Les exemples suivants montrent comment éviter ces erreurs dans les deux scénarios.

Exemple 1 : vous avez tenté d’effectuer une indexation de tableau sur une liste.

Supposons que nous essayions d’utiliser le code suivant pour créer un graphique linéaire dans matplotlib avec une légende et des étiquettes :

import numpy as np

#create a list of values
data = [3, 5, 5, 7, 8, 10, 12, 14]

#choose 3 random values from list
random_values = np.random.choice(range(len(data)), size=2)

#attempt to use indexing to access elements in list
random_vals = data[random_values.astype(int)]

#view results
random_vals

TypeError: only integer scalar arrays can be converted to a scalar index

Nous recevons une erreur car nous avons tenté d’utiliser l’indexation de tableau sur une liste.

Pour éviter cette erreur, nous devons d’abord convertir la liste en tableau NumPy en utilisant np.array() comme suit :

import numpy as np

#create a list of values
data = [3, 5, 5, 7, 8, 10, 12, 14]

#choose 3 random values from list
random_values = np.random.choice(range(len(data)), size=2)

#attempt to use indexing to access elements in list
random_vals = np.array(data)[random_values.astype(int)]

#view results
random_vals

array([5, 7])

Cette fois, nous pouvons sélectionner aléatoirement deux valeurs dans la liste sans aucune erreur puisque nous avons d’abord converti la liste en tableau NumPy.

Exemple 2 : vous avez tenté de concaténer deux matrices en utilisant une syntaxe incorrecte.

Supposons que nous essayions d’utiliser le code suivant pour concaténer deux matrices NumPy :

import numpy as np

#create twoNumPy matrices
mat1 = np.matrix([[3, 5], [5, 7]])
mat2 = np.matrix([[2, 4], [1, 8]])

#attempt to concatenate both matrices
np.concatenate(mat1, mat2)

TypeError: only integer scalar arrays can be converted to a scalar index

Nous recevons une erreur car nous n’avons pas réussi à fournir les matrices sous forme de tuple à la fonction concatenate() .

Pour éviter cette erreur, il faut utiliser des doubles parenthèses pour fournir les matrices sous forme de tuple à la fonction concatenate() comme suit :

import numpy as np

#create twoNumPy matrices
mat1 = np.matrix([[3, 5], [5, 7]])
mat2 = np.matrix([[2, 4], [1, 8]])

#attempt to concatenate both matrices
np.concatenate((mat1, mat2))

matrix([[3, 5],
        [5, 7],
        [2, 4],
        [1, 8]])

Cette fois, nous parvenons à concaténer les deux matrices sans aucune erreur.

Ressources additionnelles

Les didacticiels suivants expliquent comment corriger d’autres erreurs courantes en Python :

Comment réparer KeyError dans Pandas
Comment réparer : ValueError : impossible de convertir le float NaN en entier
Comment réparer : ValueError : les opérandes n’ont pas pu être diffusés avec les formes

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *