J'ai écrit un script python ci-dessous:
import numpy as np
arr = np.arange(6).reshape(2, 3)
arr[arr==0]=['nan']
print arr
Mais j'ai eu cette erreur:
Traceback (most recent call last):
File "C:\Users\Desktop\test.py", line 4, in <module>
arr[arr==0]=['nan']
ValueError: invalid literal for long() with base 10: 'nan'
[Finished in 0.2s with exit code 1]
Comment remplacer des zéros dans un tableau NumPy par nan?
np.nan
a le type float
: les tableaux qui le contiennent doivent également avoir ce type de données (ou le type de données complex
ou object
), vous devrez donc peut-être transtyper arr
avant vous essayez d'attribuer cette valeur.
L'erreur se produit car la valeur de chaîne 'nan'
ne peut pas être converti en un type entier pour correspondre au type de arr
.
>>> arr = arr.astype('float')
>>> arr[arr == 0] = 'nan' # or use np.nan
>>> arr
array([[ nan, 1., 2.],
[ 3., 4., 5.]])