Comment vérifier si une ligne dans un tableau numpy contient des valeurs négatives ?

Published: 25 septembre 2023

Tags: Python; Numpy;

DMCA.com Protection Status

Si vous avez un tableau numpy et que vous souhaitez vérifier si une ligne contient des valeurs négatives, il existe plusieurs façons de le faire.

Créer des données synthétiques

D'abord, générons des données artificielles et utilisons-les pour créer un tableau numpy.

import numpy as np

np.random.seed(42)

data = np.random.uniform(low=-9.0, high=100.0, size=(10,4))

print(data)

donne

[[31.82487295 94.6278594  70.78733966 56.25377478]
 [ 8.00603181  8.00340272 -2.66888627 85.41319989]
 [56.52153628 68.17991098 -6.75629012 96.72017389]
 [81.73624785 14.14496306 10.81892143 10.99109157]
 [24.16240448 48.19845105 38.08200703 22.74397628]
 [57.69196552  6.20483081 22.84376669 30.93344092]
 [40.71162828 76.58417979 12.76444226 47.05155379]
 [55.57318801 -3.93690501 57.22238886  9.58712948]
 [-1.90937636 94.42852356 96.25389161 79.11531094]
 [24.20290084  1.64626043 65.58139989 38.97662182]]

En utilisant any()

Une approche simple consiste à utiliser la fonction numpy.any(), qui renvoie vrai si au moins un élément d'un tableau est différent de zéro. En lui donnant l'argument axis=1, cela peut être utilisé pour vérifier si une ligne quelconque dans un tableau bidimensionnel contient des valeurs négatives. Ainsi, par exemple, si vous avez un tableau appelé "data", vous écririez le code suivant :

np.any(data < 0, axis=1)

Cela renverra un tableau booléen indiquant quelles lignes ont une valeur négative dans au moins l'un de leurs éléments.

array([False,  True,  True, False, False, False, False,  True,  True,
   False])

En utilisant where()

Vous pouvez également utiliser la fonction numpy.where() pour obtenir les indices des lignes contenant des valeurs négatives, en écrivant :

np.where(data < 0)

Cela renverra un tuple contenant deux tableaux, chacun vous donnant les indices de ligne et de colonne des valeurs négatives. En connaissant ces indices, vous pouvez ensuite accéder facilement aux éléments en question.

(array([1, 2, 7, 8]), array([2, 2, 1, 0]))

Références

Liens Site
numpy.any numpy.org
numpy.where numpy.org