Maison  >  Article  >  développement back-end  >  Comment convertir efficacement des séquences Python de longueur variable en tableaux NumPy denses ?

Comment convertir efficacement des séquences Python de longueur variable en tableaux NumPy denses ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-06 02:59:02999parcourir

How to Efficiently Convert Variable-Length Python Sequences to Dense NumPy Arrays?

Convertir efficacement des séquences Python de longueur variable en tableaux NumPy denses

La conversion de séquences Python en tableaux NumPy est simple. Cependant, lorsqu'il s'agit de listes de longueur variable, la conversion implicite aboutit à des tableaux de type objet, qui peuvent ne pas être optimaux. De plus, l'application d'un type de données spécifique peut entraîner des exceptions.

Une solution efficace à ce problème consiste à utiliser la fonction itertools.zip_longest. En utilisant zip_longest, on peut facilement créer une séquence de tuples avec des valeurs manquantes remplies à l'aide d'une valeur d'espace réservé. En transposant la liste résultante, un tableau NumPy dense du type de données souhaité peut être obtenu.

Par exemple, considérons la séquence v = [[1], [1, 2]].

<code class="python">import itertools
np.array(list(itertools.zip_longest(*v, fillvalue=0))).T
Out:
array([[1, 0],
       [1, 2]])</code>

Ici, la valeur de remplissage de 0 est utilisée pour remplir les valeurs manquantes dans la liste la plus courte.

Pour la compatibilité Python 2, utilisez itertools.izip_longest à la place. Cette approche est efficace et fournit un moyen simple de convertir des séquences Python de longueur variable en tableaux NumPy denses, garantissant la sécurité des types et des performances optimales.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn