Bonjour à tous,
je suis assez novice en Python, et j'utilise souvent des boucle for pour réaliser des opérations sur des listes aux quantités de données importantes. La conséquence directe et un temp de calcul conséquent. J'ai cru comprendre qu'il était possible d'avoir une alternative aux boucles for en utilisant numpy, et que les performance étaient bien meilleures. Pourriez vous m'aguillez là dessus ? voici un cas d'application simplifié pour m'aider à comprendre le principe :
___________________________
Le but étant de partir d'un fichier csv avec une unique colonne comprenant des données textuelles, et d'aboutir avec un nouveau fichier comprenant une colonne par composante des données textuelles en indiquant leur quantité. ==> c'est un exemple simplifié pour m'aider à comprendre l'utilisation de Numpy en substitution d'une boucle for
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import numpy as np # Inputs work_path = r'path' file = 'file.csv' # ce fichier est un fichier csv avec une unique colonne 1 = plusieurs "noms" type 'nom1 nom2 nom3 ...' # Liste cible, je veux obtenir un tableau avec colonne 1 = index / colonne 2 = noms / colonne 3 = quantité de nom1 dans "nom" / colonne 4 quantité de nom2 dans "nom" ... result = [] with open(work_path + '\\' + file, 'r') as f: data = f.readlines() for noms in data: result.append([data.index(noms), noms ,float(noms.count('nom1')),float(noms.count('nom2'))]) np.savetxt(work_path + '\\' + 'result.csv', result, delimiter=';', fmt='% s', header='index;noms;nom1;nom2')
Merci !
Partager