2017-05-30 2 views
0

Ich habe eine Reihe von Element. Die Aufgabe besteht darin, die Anzahl der einzigartigen Elemente zu ermitteln. Ich schrieb folgendes:Get Anzahl der Elemente nach der Verwendung von np.unique Python

import numpy as np 
tokens1 = set(["a", "b", "c", "c"]) 
print(np.unique(tokens1)) 
print(np.unique(tokens1).size) 

Das Ergebnis ist

[{'c', 'b', 'a'}] 
1 

Wie bekomme ich die richtige Nummer - 3? Sollte ich einfach etwas anderes als np.unique in erster Linie verwendet haben? könnte es einen besseren Weg geben, um Hut zu bekommen, den ich will.

+0

tun Sie feststellen, dass Sie einen Satz in einer Liste sind Rückkehr, damit die Größe 1 –

+0

kehrt @DmitryPolonskiy i sehe das Problem, aber ich weiß immer noch nicht, wie man die Größe bekommt. Hast du eine Idee? – Diana

+0

Also, was genau ist die Eingabe? Ist es die Menge oder die Liste von '[" a "," b "," c "," c "]'? – Divakar

Antwort

4

Um die Anzahl der einzigartigen Elemente in einem Set zu erhalten, rufen Sie einfach len() auf dem Set an. So ändern Sie den vorhandenen Code:

Dies liegt daran, dass ein Satz bereits Duplikate entfernt. Sie müssen nicht beide einen Satz UND verwenden.

Wenn Sie np.unique() wollte stattdessen verwenden, können Sie Ihren Code ändern zu sein:

tokens1 = np.unique(["a", "b", "c", "c"]) 
print(len(tokens1)) 
# prints: 3 
2

Nach der official docs, Sets sind die ungeordnete Sammlung von einzigartigen Elementen, so dass die Linie np.unique(tokens1) redundant ist. Sie sollten stattdessen len(tokens1) verwenden.

Verwandte Themen