2
votes

Trouver une certaine valeur de numpy ndarray

a = np.array([[1,2,3][4,5,6][7,8,9]])
b = [0,1]
I want to find value of a that has (0,1) index which is 2 in this case.I have tried a[b] but it does not show the expected result.How can I solve this problem?

2 commentaires

Tout d'abord, ce n'est pas un tableau numpy, ce sont des listes python. Alors, est votre question sur le tableau numpy? (si oui, veuillez modifier l'exemple) ou s'agit-il de listes python? (si oui, veuillez modifier la question)


J'ai édité!


3 Réponses :


2
votes

Utilisez a [tuple (b)] , comme ceci:

In [3]: a=np.array([[1,2,3],[4,5,6],[7,8,9]])

In [4]: b=np.array([0,1])

In [5]: a[tuple(b)]
Out[5]: 2

Pour plus d'informations, voir https://docs.scipy.org/doc/numpy-1.16.0/user/basics.indexing.html#dealing-with-variable-numbers-of-indices-within-programs


0 commentaires

0
votes

Ces lignes:

import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a[0,1])
print(a[0][1])

Ce sont des listes, pas des ndarrays. Les listes ne prennent pas en charge l'indexation numpy sophistiquée. Pour accéder au 1er élément de la 0ème entrée de cette liste de listes, vous utiliseriez:

print(a[0][1])

Si vous voulez réellement utiliser numpy ndarrays, essayez quelque chose comme ceci:

a = [[1,2,3],[4,5,6],[7,8,9]]
b = [0,1]


0 commentaires

1
votes

Vous pouvez également utiliser la boucle for : -

2

Sortie

a = np.array( [[1,2,3],[4,5,6],[7,8,9]])
b = [0,1]

for var in b:
    a = a[var]
print(a)


0 commentaires