Python >> Tutoriel Python >  >> Python Tag >> NumPy

Comment comparer chaque élément d'un tableau Numpy à une valeur ?

Pour comparer chaque élément d'un tableau NumPy arr contre le scalaire x en utilisant l'un des opérateurs supérieur (>), supérieur égal (>=), inférieur (<), inférieur égal (<=) ou égal (==), utilisez la fonction de diffusion avec le tableau comme opérande et le scalaire comme autre opérande. Par exemple, la plus grande comparaison arr > x génère un tableau de valeurs booléennes à partir des comparaisons élément par élément.

array > scalar
array >= scalar 
array < scalar 
array <= scalar 
array == scalar  

# yields a new Boolean array [True/False ... True/False]

Formulation du problème

Donnés sont :

  • Un tableau NumPy arr .
  • Une valeur scalaire x .

❓ Comment comparer chaque élément du tableau NumPy arr contre le scalaire x en utilisant l'un des opérateurs plus grand (>), plus grand égal (>=), plus petit (<), plus petit égal (<=) ou égal (==) ?

Le résultat souhaité est un tableau NumPy de valeurs booléennes représentant les résultats de la comparaison élément par élément.

Par exemple, considérez le pseudo-code suivant de ce que vous essayez d'accomplir :

# Given
arr = [1 10 100]
x = 3

# Desired
res = [1>x 10>x 100>x] = [False True True]

Solution :diffusion

Vous pouvez utiliser tous les opérateurs de comparaison d'une valeur scalaire sur un tableau NumPy :

  • Plus grand :arr > x
  • Supérieur ou égal :arr >= x
  • Plus petit :arr < x
  • Plus petit ou égal :arr <= x
  • Égal :arr == x

NumPy mettra automatiquement les deux opérandes dans la même forme (une fonctionnalité appelée "diffusion ").

import numpy as np


# Given
arr = np.array([1, 10, 100])
x = 3

# Greater:
print(arr > x)
# [False  True  True]

# Greater or equal:
print(arr >= x)
# [False  True  True]

# Smaller:
print(arr < x)
# [ True False False]

# Smaller or equal:
print(arr <= x)
# [ True False False]

# Equal:
print(arr == x)
# [False False False]

La comparaison est effectuée élément par élément et le résultat de l'opération est un tableau booléen comme vous le souhaitez.

Puzzle de science des données

import numpy as np

# popular instagram accounts
# (millions followers)
inst = [232, #"@instagram"
        133, #"@selenagomez"
        59, #"@victoriassecret"
        120, #"@cristiano"
        111, #"@beyonce"
        76] #"@nike"

inst = np.array(inst)
superstars = inst > 100
print(superstars[0])
print(superstars[2])

Exercice :Quel est le résultat de ce puzzle ?

Vous pouvez résoudre ce casse-tête sur notre application de formation interactive basée sur des casse-tête et suivre vos compétences en Python :

NumPy est une bibliothèque Python populaire pour la science des données axée sur l'algèbre linéaire.

La fonctionnalité NumPy pratique suivante s'avérera utile tout au long de votre carrière. Vous pouvez utiliser des opérateurs de comparaison directement sur les tableaux NumPy. Le résultat est un tableau NumPy de taille égale avec des valeurs booléennes. Chaque booléen indique si la comparaison est évaluée à True pour la valeur respective dans le tableau d'origine.

Le puzzle crée une liste d'entiers. Chaque nombre entier représente le nombre d'abonnés des comptes Instagram populaires (en millions).

  • Tout d'abord, nous convertissons cette liste en un tableau NumPy.
  • Deuxièmement, nous déterminons pour chaque compte s'il compte plus de 100 millions d'abonnés.

Nous imprimons la première et la troisième valeur booléenne du tableau NumPy résultant. Le résultat est True pour @instagram avec 232 millions d'abonnés et False pour @victoriassecret avec 59 millions d'abonnés.

Êtes-vous un codeur maître?
Testez vos compétences maintenant !

Vidéo associée

Humour de programmeur

Q: What is the object-oriented way to become wealthy?
💰

A: Inheritance.