Maison >développement back-end >Tutoriel Python >Comment puis-je créer un tableau NumPy dense avec un type de données spécifique et des valeurs manquantes remplies à partir d'une séquence de listes de longueur variable ?

Comment puis-je créer un tableau NumPy dense avec un type de données spécifique et des valeurs manquantes remplies à partir d'une séquence de listes de longueur variable ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 03:58:01635parcourir

How can I create a dense NumPy array with a specific data type and filled-in missing values from a sequence of variable-length lists?

Remplir les valeurs manquantes dans la conversion de tableau NumPy

Lors de la conversion d'une séquence Python de listes de longueur variable en un tableau NumPy, le tableau résultant est souvent suppose un type de données objet en raison de la longueur variable des listes. L'application d'un type de données spécifique, tel que int32, peut entraîner des erreurs.

Pour obtenir efficacement un tableau NumPy dense avec un type de données spécifique et des valeurs manquantes remplies, le module itertools peut être utilisé. Plus précisément, la fonction zip_longest peut être utilisée pour compléter les listes avec une valeur d'espace réservé.

Par exemple, étant donné une séquence v :

v = [[1], [1, 2]]

Pour créer un tableau int32 dense avec des zéros comme placeholder :

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

Ce code produit :

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

où les valeurs manquantes dans la séquence d'origine sont remplies de zéros. Notamment, pour Python 2, la fonction à utiliser est 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