Maison  >  Article  >  développement back-end  >  Convertir numpy en liste : conseils pour améliorer l'efficacité du traitement des données

Convertir numpy en liste : conseils pour améliorer l'efficacité du traitement des données

WBOY
WBOYoriginal
2024-01-19 10:11:16865parcourir

Convertir numpy en liste : conseils pour améliorer lefficacité du traitement des données

En traitement de données, il est souvent nécessaire de convertir des tableaux numpy en listes. Les tableaux Numpy sont des structures de données très puissantes, mais vous devez parfois utiliser des listes pour des opérations ultérieures. Dans le même temps, certaines opérations nécessitent également une conversion entre les tableaux numpy et les listes. Dans cet article, nous présenterons la méthode de conversion d'un tableau numpy en liste et fournirons des exemples de code spécifiques.

1. Utilisez la méthode tolist()

La méthode tolist() est fournie dans numpy, qui peut simplement convertir numpy en liste. Voici un exemple :

import numpy as np

a = np.array([[1,2,3], [4,5,6]])
a_list = a.tolist()

print(a_list)

Résultat de sortie :

[[1, 2, 3], [4, 5, 6]]

tolist() est très simple, mais relativement inefficace. Si vous devez gérer des tableaux plus grands, la méthode tolist() peut devenir très lente.

2. Utilisez la méthode cache

Si vous souhaitez améliorer l'efficacité lors du traitement de grands tableaux numpy, vous pouvez utiliser la méthode cache. Autrement dit, ajoutez les éléments de numpy à la liste un par un. Voici un exemple :

import numpy as np

a = np.array([[1,2,3], [4,5,6]])

# np.ndarray.flat 属性将返回一个迭代器,遍历数组中的所有元素
a_list = [item for item in a.flat]

print(a_list)

Résultat de sortie :

[1, 2, 3, 4, 5, 6]

En utilisant cette méthode, vous pouvez éviter les conversions fréquentes entre numpy et list, améliorant ainsi l'efficacité.

3. Utilisez la méthode reshape

La méthode reshape peut remodeler le tableau numpy en une forme semblable à une liste, et la liste peut être étendue par la méthode aplatir. Voici un exemple :

import numpy as np

a = np.array([[1,2,3], [4,5,6]])
a_reshape = a.reshape(-1)
a_list = a_reshape.tolist()

print(a_list)

Résultat de sortie :

[1, 2, 3, 4, 5, 6]

La méthode reshape peut transformer le tableau en un tableau unidimensionnel, puis utiliser la méthode tolist() pour le convertir en liste.

4. Utilisez la méthode list()

L'utilisation de la méthode list() peut convertir directement un tableau numpy en liste, mais vous devez faire attention aux dimensions du tableau. Cette méthode ne fonctionne que si la dimension est 1.

import numpy as np

a = np.array([1,2,3])
a_list = list(a)

print(a_list)

Résultat de sortie :

[1, 2, 3]

Si la dimension du tableau n'est pas 1, vous devez utiliser d'autres méthodes.

Résumé

Il existe plusieurs méthodes ci-dessus pour convertir des tableaux numpy en listes, parmi lesquelles la méthode tolist() est la méthode la plus courante, mais son efficacité est relativement faible. Lorsqu'il s'agit de grands tableaux, l'utilisation de méthodes de cache et de méthodes de remodelage peut améliorer l'efficacité. Nous devons choisir la méthode la plus adaptée à nos propres besoins.

Joindre le code complet :

import numpy as np

# tolist()方法
a = np.array([[1,2,3], [4,5,6]])
a_list = a.tolist()
print(a_list)

# 缓存方法
a = np.array([[1,2,3], [4,5,6]])
a_list = [item for item in a.flat]
print(a_list)

# reshape方法
a = np.array([[1,2,3], [4,5,6]])
a_reshape = a.reshape(-1)
a_list = a_reshape.tolist()
print(a_list)

# list()方法
a = np.array([1,2,3])
a_list = list(a)
print(a_list)

Résultat de sortie :

[[1, 2, 3], [4, 5, 6]]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]
[1, 2, 3]

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