Il existe un exemple de jeu de données A = [[1,3,5], [2,3,5]]
Je veux connaître la fréquence de chaque élément 1,2,3,5 en utilisant la fonction Counter.
Je veux obtenir le résultat de Counter ('3': 2, '5': 2, '1': 1, '2': 2)
4 Réponses :
Essayez ceci en utilisant Counter:
Counter({1: 1, 3: 2, 5: 2, 2: 1})
le résultat sera:
from collections import Counter A = [[1,3,5],[2,3,5]] result = Counter([i for j in A for i in j])
Je t'en prie. Veuillez cocher le bouton gris à côté de la réponse et le mettre en vert :) @tedsong
Je pense que vous voulez dire une liste de liste?
A = [[1,3,5], [2,3,5]]
si oui , vous pouvez utiliser numpy pour transformer cela en un tableau aplati
import numpy
#turn A into a numpy array
arr =numpy.array(A)
#get the unique values and their counts - ravel flattens an array
unique,counts = numpy.unique(arr.ravel(),return_counts=True)
my_counts = dict(zip(unique,counts))
my_counts
>>>{1: 1, 2: 1, 3: 2, 5: 2}
Counter prend en charge l'ajout et la somme intégrée a un paramètre start , c'est-à-dire l'élément 0 pour les entiers. Un élément zéro pour les compteurs est simplement Counter () . Vous pouvez donc résoudre ce problème via
Counter({1: 1, 3: 2, 5: 2, 2: 1})
donne
from collections import Counter from functools import reduce A = [[1,2,5], [2, 3, 5]] counters = [Counter(l) for l in A] reduce(lambda x,y: x+y, counters)
Cela peut également être résolu en termes de réduction de carte, où carte est l'application de Counter.
Counter({1: 1, 3: 2, 5: 2, 2: 1})
gives
from collections import Counter A = [[1,2,5], [2, 3, 5]] sum(Counter(l) for l in A, Counter())
Tout d'abord, les listes ne sont pas hachables, donc A ne doit pas être un ensemble.
Faisons donc une liste de listes.
Ensuite, nous appliquons Counter à la séquence obtenue en chaînant les sous-listes.
Ne réinventez jamais la roue: itertools fournit d'excellentes solutions p>
Counter({3: 2, 5: 2, 1: 1, 2: 1})
Produit
import collections as co import itertools as it A = [[1,3,5],[2,3,5]] cnt = co.Counter(it.chain.from_iterable(A)) print(cnt)
Cette syntaxe n'est pas valide:
A = {[1,3,5], [2,3,5]}donc je veux dire qu'il existe un ensemble de données composé d'une liste et je veux connaître la fréquence de l'élément sur l'ensemble de données
Le compteur n'est pas une fonction, c'est un dictionnaire à usage spécial.
Comment l'ensemble de données est-il défini?
La valeur
2apparaît une seule fois, pas deux fois