Norme de tableaux de vecteurs en python
J'ai ce tableau
A = array([[-0.49740509, -0.48618909, -0.49145315],
[-0.48959259, -0.48618909, -0.49145315],
[-0.49740509, -0.47837659, -0.49145315],
...,
[ 0.03079315, -0.01194593, -0.06872366],
[ 0.03054901, -0.01170179, -0.06872366],
[ 0.03079315, -0.01170179, -0.06872366]])
qui est une collection de vecteur 3D. Je me demandais si je pouvais utiliser un vectoriel opération pour obtenir un tableau avec la norme de chacun de mes vecteur.
J'ai essayé avec norm(A)
mais il ne fonctionne pas.
Est-ce un tableau numpy?
oui, est-il pertinent pour ce que j'ai demandé?
Je pense que c'est oui.
Pour info: Dans la prochaine version de numpy (1.8.0), vous serez en mesure d'utiliser le
oui, est-il pertinent pour ce que j'ai demandé?
Je pense que c'est oui.
numpy.array
est différent de array
de classe en Python. Je suppose que vous voulez des réponses liées à numpy.array
?Pour info: Dans la prochaine version de numpy (1.8.0), vous serez en mesure d'utiliser le
axis
argument: norm(A, axis=1)
.OriginalL'auteur Brian | 2012-05-20
Vous devez vous connecter pour publier un commentaire.
De le faire manuellement peut-être plus rapide (bien qu'il y a toujours un truc intéressant à quelqu'un de postes, je ne pense pas que d'):
Cela suppose que tout est réel. Pourrait multiplier par le conjugué au lieu de cela, si ce n'est pas vrai.
Mise à jour: Eric suggestion de l'utilisation de
math.sqrt
ne fonctionne pas, il ne gère pas les tableaux numpy -- mais l'idée d'utiliser sqrt au lieu de**0.5
est un bon un, de sorte que nous allons tester.Je l'ai essayé quelques fois, et ce fut la plus grande différence que j'ai vu.
**0.5
sera toujours plus lent quemath.sqrt
OriginalL'auteur DSM
N'ayant jamais utilisé numpy, je vais deviner:
map(norm, A)
pourrait être plus rapide dans cette situation.Ouais, mais il ne veut pas retourner un tableau numpy, alors vous pourriez au moins avoir l'envelopper dans
np.array()
Si je l'utilise comme un générateur?
quelle est la taille de votre jeu de données et lent comment est-il?
OriginalL'auteur Eric
Comment sur cette méthode?
Aussi, vous voudrez peut-être ajouter un [numpy] tag de la poste.
linalg.norm
méthode comme vous l'avez dit norm(A) "ne marche pas", mais après la lecture de Eric de réponse, je suppose qu'il est plus probable que vous n'essayezlinalg.norm
mais il n'a pas vous donner ce que tu voulais.Un très incomplète.
La suite de l'OP vague avec "ça n'a pas fonctionné". Il pourrait avoir expliqué ce qu'il a essayé et comment il n'a pas de travail. Comme je l'ai expliqué dans mon commentaire ci-dessus.
Vous avez raison. Ce n'est plus un cas de l'OP d'être obscur. Rédigé.
OriginalL'auteur Junuxx