Sto usando un'operazione set in python per eseguire una differenza simmetrica tra due array numpy. Il risultato, tuttavia, è un set e ho bisogno di riconvertirlo in una serie numpy per andare avanti. C'è un modo per fare questo? Ecco quello che ho provato:Come convertire un set python in un array numpy?
a = numpy.array([1,2,3,4,5,6])
b = numpy.array([2,3,5])
c = set(a)^set(b)
Il risultato è un insieme:
In [27]: c
Out[27]: set([1, 4, 6])
Se converto a un array NumPy, si pone l'intero set nel primo elemento dell'array.
In [28]: numpy.array(c)
Out[28]: array(set([1, 4, 6]), dtype=object)
Che cosa ho bisogno, tuttavia, sarebbe questo:
array([1,4,6],dtype=int)
potevo ciclo sugli elementi di convertire uno per uno, ma avrò 100.000 elementi e sperato in una funzione built-in per salvare il ciclo. Grazie!
Sta usando le routine di numpy set, come 'setxor1d', quando il numero dei confronti è grande? Forse una nuova domanda, ma molto legata a questa risposta, penso. Nel mio caso avrò 100k oggetti con 10m + operazioni set. – Annan