Convertir liste de numpy.float64 flotter dans Python rapidement
Quel est le moyen le plus rapide de la conversion d'une liste d'éléments de type numpy.float64 de type float? Je suis actuellement en utilisant le simple for loop
itération en conjonction avec float()
.
Je suis tombé sur ce post: La conversion de numpy dtypes natif python les types de, mais ma question n'est pas un de comment faire pour convertir des types de python, mais plutôt plus spécifiquement à la meilleure façon de convertir toute une liste d'un type à l'autre de la façon la plus rapide possible en python (c'est à dire dans ce cas précis numpy.float64 float). J'ai été en espérant pour certains secrets python machines que je n'avais pas rencontré qui pourrait faire tout à la fois 🙂
Juste pour être clair: est - ce une liste Python, ou un tableau numpy de dtype np.float64? Vous utilisez une compréhension de liste sur les listes, et les méthodes de tableau (.e.g.
astype
) sur les tableaux.c'est une liste python
OriginalL'auteur Darth Hexamal | 2015-03-23
Vous devez vous connecter pour publier un commentaire.
La
tolist()
méthode devrait faire ce que vous voulez. Si vous avez un tableau numpy, il suffit d'appelertolist()
:Si, en fait, vous avez vraiment une liste python de numpy.float64 objets, puis @Alexandre réponse est idéal, ou vous pouvez convertir la liste à un tableau et ensuite utiliser le
tolist()
méthode. E. g.@Alexandre suggestion, une compréhension de liste:
Ou, convertir un tableau et ensuite utiliser le
tolist()
méthode.Si vous êtes préoccupé par la vitesse, voici une comparaison. L'entrée,
x
, est une liste python de numpy.float64 objets:Le calendrier pour la compréhension de liste:
Calendrier pour la conversion d'un tableau numpy et puis
tolist()
:De sorte qu'il est plus rapide pour convertir la liste à un tableau et ensuite appeler
tolist()
.OriginalL'auteur Warren Weckesser
Vous pouvez utiliser une liste de compréhension:
OriginalL'auteur Alexander
Tellement de solutions possibles que j'ai rencontré (un grand merci à Warren Weckesser et Alexander pour en signalant toutes les meilleures approches possibles), j'ai couru ma méthode actuelle et que présenté par Alexander de donner une simple comparaison pour les moteurs d'exécution (les deux choix sont le résultat du fait que j'ai une vraie liste d'éléments de numpy.float64 et souhaitez les convertir en float rapidement):
2 approches couverts: liste de compréhension et de base pour la boucle d'itération
D'abord voici le code:
J'ai couru quatre fois pour donner un rapide de résultats:
Clairement pour convertir une vrai liste de numpy.float64 à flotteur, la meilleure approche est d'utiliser python compréhension de liste.
tolist()
.OriginalL'auteur Darth Hexamal