İki numpy dizisi arasında simetrik bir fark gerçekleştirmek için python'da bir set işlemi kullanıyorum. Sonuç, ancak bir set ve ileriye taşımak için onu numpy dizisine dönüştürmem gerekiyor. Bunu yapmanın bir yolu var mı? İşte denedim ne:Bir python kümesini numpy dizisine dönüştürme nasıl yapılır?
a = numpy.array([1,2,3,4,5,6])
b = numpy.array([2,3,5])
c = set(a)^set(b)
sonuç kümesidir: Bir numpy diziye dönüştürmek ise
In [27]: c
Out[27]: set([1, 4, 6])
, bu ilk dizi öğesinin tüm set yerleştirir.
array([1,4,6],dtype=int)
Ben elemanları üzerinde döngü tek tek dönüştürmek için olabilir, ama yerleşik bir işlev için 100.000 öğelere ve ümit olacaktır:
In [28]: numpy.array(c)
Out[28]: array(set([1, 4, 6]), dtype=object)
ben gerekenler, ancak bu olurdu döngüyü kaydetmek için. Teşekkürler!
Karşılaştırma sayısı büyük olduğunda "setxor1d" gibi kötü ayar rutinlerini kullanıyor musunuz? Belki yeni bir soru, ama bence bu cevabı çok ilgili. Benim durumumda, 10m + set işlemleri ile 100k objeye sahip olacağım. – Annan