Comment trouver l'indice d'un tableau dans un tableau
J'ai créé un tableau de la façon illustrée ci-dessous; ce qui représente 3 paires de coordonnées. Mon problème est que je ne semble pas être en mesure de trouver l'indice d'une paire de coordonnées dans le tableau.
import numpy as np
R = np.random.uniform(size=(3,2))
R
Out[5]:
array([[ 0.57150157, 0.46611662],
[ 0.37897719, 0.77653461],
[ 0.73994281, 0.7816987 ]])
R.index([ 0.57150157, 0.46611662])
Le suivant est renvoyé:
AttributeError: 'numpy.ndarray' object has no attribute 'index'
La raison pour laquelle je suis en train de faire, c'est si je peux allonger la liste, avec l'index de coordonner la paire, à l'intérieur d'une boucle for.
par exemple
v = []
for A in R:
v.append(R.index(A))
Je ne suis pas sûr pourquoi, la fonction index ne fonctionne pas, et n'arrive pas à trouver un moyen de contourner cela.
Je suis nouveau en programmation, donc excusez-moi si cela semble absurde.
OriginalL'auteur user3258480 | 2014-01-31
Vous devez vous connecter pour publier un commentaire.
Vous pouvez obtenir le résultat souhaité par la conversion de votre intérieur des tableaux (les coordonnées) de n-uplets.
Et puis vous pouvez trouver l'indice d'un tuple à l'aide de R. index((nombre1, nombre2));
Espérons que cette aide!
[Edit] Pour expliquer ce qui se passe dans le code ci-dessus, la fonction map passe par (itérations) les éléments de la matrice R, et pour chacun le remplace par le résultat retourné par la fonction lambda.
Il est donc équivalent à quelque chose le long de ces lignes:
De sorte qu'il prend chaque élément et ne quelque chose, de le remettre dans la liste. J'ai réalisé que cela risque de ne pas faire ce que je croyais (de retour (x) ne semble pas modifier un réseau régulier d'un n-uplet), mais il ne aider votre cas parce que je pense qu'en parcourant ce python pourrait créer un réseau régulier de la tableau numpy.
Effectivement de les convertir à un n-uplet, le code suivant devrait fonctionner
(crédits de https://stackoverflow.com/a/10016379/2612012)
OriginalL'auteur Clint Powell
index()
est une méthode du typelist
, pas denumpy.array
. Essayez:Où
x
est, par exemple, la troisième entrée deR
. Cette première convertir votre tableau dans unlist
, alors vous pouvez utiliserindex
😉OriginalL'auteur altroware
Tableaux Numpy n'est pas un indice de la fonction, pour un certain nombre de raisons. Cependant, je pense que vous êtes qui veulent quelque chose de différent.
Par exemple, le code que vous avez mentionné:
Serait juste (en supposant que R possède des lignes uniques, pour le moment):
Cependant, je pense que vous pourriez être désireux de la fonction intégrée
enumerate
. E. g.Par exemple, disons que nous avons voulu savoir les indes, où la somme de chaque ligne est plus grand que 1.
Une façon de le faire serait:
Cependant, numpy fournit également d'autres manières de le faire, si vous travaillez avec des tableaux numpy. Par exemple, l'équivalent du code ci-dessus serait:
Si vous êtes juste de commencer avec python, se concentrer sur la compréhension de la première exemple avant de trop se soucier de la meilleure façon de faire les choses avec numpy. Juste être conscient que les tableaux numpy se comportent très différemment des listes.
OriginalL'auteur Joe Kington