Maison  >  Article  >  développement back-end  >  Comment convertir des listes Python de longueur variable en un tableau NumPy dense avec des espaces réservés ?

Comment convertir des listes Python de longueur variable en un tableau NumPy dense avec des espaces réservés ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 22:03:03514parcourir

How to Convert Variable-Length Python Lists to a Dense NumPy Array with Placeholders?

Convertir efficacement les listes Python de longueur variable en un tableau NumPy dense

La conversion directe des listes Python de longueur variable en résultats de tableau NumPy dans un tableau de type « objet », ce qui peut être indésirable. Alternativement, tenter de forcer un type spécifique à l'aide de np.array(v, dtype=np.int32) entraîne une exception en raison de la présence de séquences dans le tableau.

Par conséquent, pour créer un tableau NumPy dense de un type de données spécifique (par exemple, int32) tout en remplissant les valeurs manquantes avec un espace réservé, vous pouvez exploiter la fonction itertools.zip_longest.

Par exemple, en considérant la séquence d'entrée v = [[1], [1, 2 ]], en utilisant itertools.zip_longest avec un espace réservé de 0, vous pouvez obtenir efficacement un tableau NumPy dense comme suit :

<code class="python">import itertools
np.array(list(itertools.zip_longest(*v, fillvalue=0))).T</code>

Cela produira le résultat souhaité :

array([[1, 0],
       [1, 2]])

Remarque que pour Python 2, utilisez plutôt itertools.izip_longest.

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