Comment remplacer des éléments d'une matrice avec numpy sous python ?

Published: 20 janvier 2015

DMCA.com Protection Status

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)
  >>> M
  array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
  >>> M[M > 5 ] = -1
  >>> M
  array([ 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)
>>> A
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15])
>>> A = A.reshape(4,4)
>>> A
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
>>> A[A<=5]=0
>>> A
array([[ 0,  0,  0,  0],
       [ 0,  0,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
>>> A[A>1]=1
>>> A
array([[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)
   >>> M
   array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
   >>> M[(M > 2) & (M < 7)] = -1
   >>> M
   array([ 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