J'ai un tableau 1D dans numpy et je veux trouver la position de l'index où une valeur dépasse la valeur dans le tableau numpy.
Par exemple
aa = range(-10,10)
Trouver une position dans aa
où, la valeur 5
est dépassé.
J'ai un tableau 1D dans numpy et je veux trouver la position de l'index où une valeur dépasse la valeur dans le tableau numpy.
Par exemple
aa = range(-10,10)
Trouver une position dans aa
où, la valeur 5
est dépassé.
Vous devez utiliser np.where
au lieu de np.argmax
. Ce dernier renverra la position 0 même si aucune valeur n'est trouvée, ce qui ne correspond pas aux index que vous attendez.
>>> aa = np.array(range(-10,10))
>>> print(aa)
array([-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2,
3, 4, 5, 6, 7, 8, 9])
Si la condition est remplie, il renvoie un tableau des index.
>>> idx = np.where(aa > 5)[0]
>>> print(idx)
array([16, 17, 18, 19], dtype=int64)
Sinon, s'il n'est pas rencontré, il renvoie un tableau vide.
>>> not_found = len(np.where(aa > 20)[0])
>>> print(not_found)
array([], dtype=int64)
Le point contre argmax
pour ce cas est : le plus simple est le mieux, SI la solution n'est pas ambiguë. . Donc, pour vérifier si quelque chose est tombé dans la condition, il suffit de faire un if len(np.where(aa > value_to_search)[0]) > 0
.
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.