HOWTO · Python

Correction de l'erreur TypeError: iteration over a 0-d array dans Python NumPy

Apprenez à corriger l'itération sur une erreur de tableau 0-d due à numpy en Python

L’erreur TypeError: iteration over a 0-d array se produit lorsque l’itération est effectuée sur un itérable de dimension 0. Dans cet article, nous allons apprendre à corriger l’erreur TypeError: iteration over a 0-d array dans Python NumPy.

Comment réparer l’erreur TypeError: iteration over a 0-d array due dans Python NumPy

Le code Python suivant décrit un scénario dans lequel nous pouvons rencontrer cette erreur.

import numpy as np

data = {
    "AB": 1.01,
    "CD": 2.02,
    "EF": 3.03,
    "GH": 4.04,
    "IJ": 5.05,
}

keys, values = np.array(data.items()).T
print(keys)
print(values)

Production :

Traceback (most recent call last):
  File "<string>", line 11, in <module>
TypeError: iteration over a 0-d array

La raison derrière cette erreur est le type de données de data.items(), qui est <class 'dict_items'>. Pour éviter cette erreur, nous devons convertir son type de données en une liste ou un tuple. Le code Python suivant montre comment corriger cette erreur en utilisant une liste et un tuple.

Solution utilisant une liste.

import numpy as np

data = {
    "AB": 1.01,
    "CD": 2.02,
    "EF": 3.03,
    "GH": 4.04,
    "IJ": 5.05,
}
print(type(list(data.items())))
keys, values = np.array(list(data.items())).T
print(keys)
print(values)

Production :

<class 'list'>
['AB' 'CD' 'EF' 'GH' 'IJ']
['1.01' '2.02' '3.03' '4.04' '5.05']

Ci-dessous une solution utilisant un tuple.

import numpy as np

data = {
    "AB": 1.01,
    "CD": 2.02,
    "EF": 3.03,
    "GH": 4.04,
    "IJ": 5.05,
}
print(type(tuple(data.items())))
keys, values = np.array(tuple(data.items())).T
print(keys)
print(values)

Production :

<class 'tuple'>
['AB' 'CD' 'EF' 'GH' 'IJ']
['1.01' '2.02' '3.03' '4.04' '5.05']