Exemples de comment remplacer des éléments d'une matrice avec numpy sous python:
Remplacer les éléments d'une matrice 1D
Supposons par exemple que l'on veuille remplacer les éléments strictement plus grand que 5 par -1 de la matrice M, dans ce cas il suffit d'utiliser la syntaxe suivante M[M > 5 ] = -1, illustration:
>>> import numpy as np>>> M = np.arange(10)>>> Marray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])>>> M[M > 5 ] = -1>>> Marray([ 0, 1, 2, 3, 4, 5, -1, -1, -1, -1])
Remplacer les éléments d'une matrice 2D
Autre exemple avec une matrice 2D
>>> A = np.arange(16)>>> Aarray([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])>>> A = A.reshape(4,4)>>> Aarray([[ 0, 1, 2, 3],[ 4, 5, 6, 7],[ 8, 9, 10, 11],[12, 13, 14, 15]])>>> A[A<=5]=0>>> Aarray([[ 0, 0, 0, 0],[ 0, 0, 6, 7],[ 8, 9, 10, 11],[12, 13, 14, 15]])>>> A[A>1]=1>>> Aarray([[0, 0, 0, 0],[0, 0, 1, 1],[1, 1, 1, 1],[1, 1, 1, 1]])
Utiliser plusieurs conditions
Maintenant si on veut remplacer les éléments strictement plus grand que 2 mais strictement plus petit que 7 par -1, la syntaxe est la suivante M[(M > 2) & (M < 7)] = -1, illustration:
>>> import numpy as np>>> M = np.arange(10)>>> Marray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])>>> M[(M > 2) & (M < 7)] = -1>>> Marray([ 0, 1, 2, -1, -1, -1, -1, 7, 8, 9])
En utilisant la fonction numpy where
On peut aussi utiliser la fonction numpy where:
>>> A = np.array((1,7,3,8,4,9,1))>>> np.where(A>4,1,A)array([1, 1, 3, 1, 4, 1, 1])
Références
| Liens | Site |
|---|---|
| Replace all elements of Python NumPy Array that are greater than some value | stackoverflow |
| Replace “zero-columns” with values from a numpy array | stackoverflow |
| numpy.place | numpy doc |
| Numpy where function multiple conditions | stackoverflow |
| Replace NaN's in NumPy array with closest non-NaN value | stackoverflow |
| numpy.put | numpy doc |
| numpy.nan_to_num | numpy doc |
| How to: Replace values in an array | kite.com |
