Tôi đang sử dụng một thao tác được đặt trong python để thực hiện sự khác biệt đối xứng giữa hai mảng numpy. Kết quả, tuy nhiên, là một bộ và tôi cần phải chuyển đổi nó trở lại một mảng numpy để di chuyển về phía trước. Có cách nào để làm việc này không? Đây là những gì tôi đã cố gắng:Làm thế nào để chuyển đổi một bộ python thành một mảng numpy?
a = numpy.array([1,2,3,4,5,6])
b = numpy.array([2,3,5])
c = set(a)^set(b)
Kết quả là một tập hợp:
In [27]: c
Out[27]: set([1, 4, 6])
Nếu tôi chuyển sang một mảng NumPy, nó đặt toàn bộ nhóm bằng các phần tử mảng đầu tiên.
In [28]: numpy.array(c)
Out[28]: array(set([1, 4, 6]), dtype=object)
gì tôi cần, tuy nhiên, sẽ là thế này:
array([1,4,6],dtype=int)
tôi có thể lặp trên các yếu tố để chuyển đổi từng người một, nhưng tôi sẽ có 100.000 yếu tố và hy vọng cho một hàm built-in để lưu vòng lặp. Cảm ơn!
Có sử dụng các thói quen thiết lập gọn gàng, chẳng hạn như 'setxor1d', xấu khi số lượng so sánh lớn không? Có lẽ một câu hỏi mới, nhưng rất liên quan đến câu trả lời này tôi nghĩ. Trong trường hợp của tôi, tôi sẽ có 100k đối tượng với các hoạt động thiết lập 10m +. – Annan