Comment réparer en Python : ‘numpy.ndarray’ l’objet n’est pas appelable



Une erreur courante que vous pouvez rencontrer lors de l’utilisation de NumPy en Python est la suivante :

TypeError: 'numpy.ndarray' object is not callable

Cette erreur se produit généralement lorsque vous tentez d’appeler un tableau NumPy en tant que fonction en utilisant des crochets ronds () au lieu de crochets carrés [ ] .

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Comment reproduire l’erreur

Supposons que nous ayons le tableau NumPy suivant :

import numpy as np

#create NumPy array
x = np.array([2, 4, 4, 5, 9, 12, 14, 17, 18, 20, 22, 25])

Supposons maintenant que nous essayions d’accéder au premier élément du tableau :

#attempt to access the first element in the array
x(0)

TypeError: 'numpy.ndarray' object is not callable

Puisque nous avons utilisé des crochets round () , Python pense que nous essayons d’appeler le tableau NumPy x en tant que fonction.

Puisque x n’est pas une fonction, nous recevons une erreur.

Comment réparer l’erreur

La façon de résoudre cette erreur consiste simplement à utiliser des crochets carrés [ ] lors de l’accès aux éléments du tableau NumPy au lieu de crochets ronds () :

#access the first element in the array
x[0]

2

Le premier élément du tableau (2) est affiché et nous ne recevons aucune erreur car nous avons utilisé des crochets [ ] .

Notez également que nous pouvons accéder à plusieurs éléments du tableau à la fois tant que nous utilisons des crochets [ ] :

#find sum of first three elements in array
x[0] + x[1] + x[2]

10

Ressources additionnelles

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

Comment réparer : ValueError : l’index contient des entrées en double, ne peut pas être remodelé
Comment réparer : erreur de type : chaîne attendue ou objet de type octets
Comment réparer : TypeError : l’objet ‘numpy.float64’ n’est pas appelable

Ajouter un commentaire

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