2 votes

Comment vérifier des tableaux avec numpy python

J'ai deux tableaux et je veux vérifier combien d'entiers sont identiques dans les deux tableaux. Le problème que je rencontre est qu'il ne m'indique le nombre d'entiers identiques que lorsqu'ils se trouvent à la même position. Les deux tableaux contiennent 15 nombres. Exemple :

import numpy as np
a = np.array([1, 4, 5, 7, 9, 14, 15, 17, 18, 19, 21, 22, 23, 25, 26])
b = np.array([8, 28, 12, 3, 24, 16, 23, 19, 14, 2, 11, 29, 27, 6, 13])
print(np.count_nonzero(a==b))

Cette impression 0 même s'il y a clairement des entiers qui sont identiques. Comment puis-je faire afficher combien d'entiers ont la même valeur ?

3voto

juanpa.arrivillaga Points 35811

Vous souhaitez utiliser np.intersect1d si je vous comprends bien :

In [12]: import numpy as np

In [13]: a = np.array([1, 4, 5, 7, 9, 14, 15, 17, 18, 19, 21, 22, 23, 25, 26])
    ...: b = np.array([8, 28, 12, 3, 24, 16, 23, 19, 14, 2, 11, 29, 27, 6, 13])
    ...:

In [14]: np.intersect1d(a, b)
Out[14]: array([14, 19, 23])

2voto

coldspeed Points 111053

Vous pouvez effectuer des comparaisons par diffusion entre b y a Il suffit ensuite de faire le décompte des correspondances :

(b == a[:, None]).sum()
3

Cela se vérifie puisque vous avez [14, 19, 23] comme éléments communs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X