Comment insérer aléatoirement des NaN dans une matrice avec numpy en python ?

Published: 02 août 2020

Tags: Python; Numpy;

DMCA.com Protection Status

Exemples de comment insérer aléatoirement des NaN dans une matrice avec numpy en python:

Créer une matrice avec numpy

Soit par exemple la matrice A suivante:

import numpy as np

A = np.random.uniform(10,80, size=(4,6))

print(A)

donne

[[52.34830542 43.7300926  65.65912419 74.47707968 47.7363097  31.78605372]
 [49.41123686 19.82268971 59.91408598 40.86920833 53.23834812 37.93559161]
 [16.18419498 42.49772722 76.53306408 30.90572765 38.15287236 72.44956349]
 [46.15969878 52.39722864 71.97596547 70.40800518 44.63824773 35.43923044]]

Insérer aléatoirement des NaN

Exemple de comment insérer 6 NaN dans la matrice A;

n = 6

index = np.random.choice(A.size, n, replace=False)

A.ravel()[index] = np.nan

print(A)

donne

[[52.34830542 43.7300926  65.65912419         nan 47.7363097          nan]
 [        nan 19.82268971         nan 40.86920833 53.23834812 37.93559161]
 [16.18419498 42.49772722         nan 30.90572765 38.15287236 72.44956349]
 [46.15969878 52.39722864 71.97596547         nan 44.63824773 35.43923044]]

Autre exemple

Note:

print(type(np.nan))

donne

 <class 'float'>

Autre exemple

import numpy as np

A = np.random.randint(10,80, size=(5,2))

A = A * 1.0

print(A)

donne

[[52. 55.]
[14. 33.]
[19. 50.]
[67. 37.]
[16. 72.]]

n = 3

index = np.random.choice(A.size, n, replace=False)

A.ravel()[index] = np.nan

print(A)

donne

[[52. 55.]
 [14. 33.]
 [19. nan]
 [67. nan]
 [16. nan]]

Références