Tôi đã có một danh sách các tọa độ 2d với cấu trúc này:Cách nào hiệu quả hơn để chọn một cặp đối tượng ngẫu nhiên từ danh sách các danh sách hoặc bộ dữ liệu?
coo = [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0)]
đâu coo[0]
được tọa độ đầu tiên được lưu giữ trong một tuple.
Tôi muốn chọn hai số khác nhau tọa độ ngẫu nhiên. Tôi tất nhiên có thể sử dụng phương pháp này:
import numpy as np
rndcoo1 = coo[np.random.randint(0,len(coo))]
rndcoo2 = coo[np.random.randint(0,len(coo))]
if rndcoo1 != rndcoo2:
#do something
Nhưng bởi vì tôi phải lặp lại thao tác này 1'000'000 lần tôi đã tự hỏi nếu có một phương pháp nhanh hơn để làm điều đó. np.random.choice()
không thể được sử dụng cho mảng 2d là có bất kỳ thay thế mà tôi có thể sử dụng?
là 'coo' thực sự là một mảng NumPy? Bạn đã thử 'random.choice' thay vì' np.random.choice' chưa? Và 'rndcoo1' và 'rndcoo2' có khác biệt không? –
@ G M rndcoo1, rndcoo2 = [coo [np.random.choice (len (coo))] cho __ trong phạm vi (2)] –
@tobias_k coo có thể là danh sách nếu cần. Trên thực tế tôi không biết random.choice có thể được sử dụng và nó có vẻ tốt hơn. Tôi phải chọn hai tọa độ khác nhau không thể giống nhau. –