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!