9
votes

Numpy binount () avec des flotteurs

J'essaie d'obtenir un binount d'une matrice numpue qui est du type flotteur: xxx

Comment pouvez-vous utiliser binount () avec des valeurs flottantes et non int?


2 commentaires

Que vous attendriez-vous à la suite de ce type d'opération "étrange"?


Je veux connaître le nombre d'occurrences de chaque valeur. Donc, le résultat serait: [2,1,1,1] à 0,1 se produit deux fois et les autres une fois.


3 Réponses :


5
votes

Vous voulez quelque chose comme ça? XXX PRE>

ou, plus bien de sortie: P>

>>> np.bincount([10,11])
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1])


0 commentaires

12
votes

Vous devez utiliser numpy.unique code> avant d'utiliser bincount code>. Sinon, c'est ambigu ce que vous comptez. unique code> devrait être beaucoup plus rapide que le compteur pour les tableaux numpus.

>>> w = np.array([0.1, 0.2, 0.1, 0.3, 0.5])
>>> uniqw, inverse = np.unique(w, return_inverse=True)
>>> uniqw
array([ 0.1,  0.2,  0.3,  0.5])
>>> np.bincount(inverse)
array([2, 1, 1, 1])


0 commentaires

7
votes

Depuis la version 1.9.0, vous pouvez utiliser np.unique directement: xxx


0 commentaires