Estoy usando una operación set en python para realizar una diferencia simétrica entre dos matrices numpy. El resultado, sin embargo, es un conjunto y necesito convertirlo nuevamente a una matriz numpy para seguir adelante. ¿Hay alguna forma de hacer esto? Esto es lo que he intentado:¿Cómo convertir un conjunto de python a una matriz numpy?
a = numpy.array([1,2,3,4,5,6])
b = numpy.array([2,3,5])
c = set(a)^set(b)
El resultado es un conjunto:
In [27]: c
Out[27]: set([1, 4, 6])
Si convierto en una matriz numpy, se coloca todo el conjunto en el primer elemento de la matriz.
In [28]: numpy.array(c)
Out[28]: array(set([1, 4, 6]), dtype=object)
Lo que necesito, sin embargo, sería la siguiente:
array([1,4,6],dtype=int)
pude bucle sobre los elementos para convertir uno por uno, pero voy a tener 100.000 elementos y esperado una función incorporada para guardar el bucle ¡Gracias!
¿Está mal el uso de rutinas numpy set, como 'setxor1d', cuando el número de comparaciones es grande? Tal vez una nueva pregunta, pero muy relacionada con esta respuesta, creo. En mi caso tendré 100k objetos con 10m + operaciones de conjunto. – Annan