Tôi đang tìm một hàm đơn giản có thể tạo ra một mảng các giá trị ngẫu nhiên được chỉ định dựa trên xác suất tương ứng (cũng được xác định). Tôi chỉ cần nó để tạo ra các giá trị float, nhưng tôi không thấy tại sao nó không thể tạo ra bất kỳ vô hướng nào. Tôi có thể nghĩ về nhiều cách để xây dựng điều này từ các chức năng hiện có, nhưng tôi nghĩ rằng tôi có thể chỉ bỏ qua một chức năng SciPy hoặc NumPy rõ ràng.Tạo các biến ngẫu nhiên rời rạc với các trọng số xác định bằng SciPy hoặc NumPy
ví dụ .:
>>> values = [1.1, 2.2, 3.3]
>>> probabilities = [0.2, 0.5, 0.3]
>>> print some_function(values, probabilities, size=10)
(2.2, 1.1, 3.3, 3.3, 2.2, 2.2, 1.1, 2.2, 3.3, 2.2)
Lưu ý: Tôi tìm thấy scipy.stats.rv_discrete nhưng tôi không hiểu tại sao nó hoạt động. Cụ thể, tôi không hiểu những gì này (dưới đây) có nghĩa là cũng không gì nó nên làm:
numargs = generic.numargs
[ <shape(s)> ] = ['Replace with resonable value', ]*numargs
Nếu rv_discrete là những gì tôi nên sử dụng, bạn có thể vui lòng cung cấp cho tôi với một ví dụ đơn giản và giải thích những điều trên " hình dạng "tuyên bố?
Tuyệt quá! Tuy nhiên, cú pháp chính xác là: np.random.choice (các phần tử, 10, p = danh sách (xác suất)) – Sina
Tốt. Tôi nghĩ rằng phiên bản này xuất hiện sau khi tôi đăng câu hỏi ban đầu của mình (tôi nghĩ rằng điều này đã được phát hành lần đầu tiên trong 1.7.0 mà tôi tin là đến năm 2013). – TimY
Rất đẹp! Dường như cũng làm việc mà không cần đưa vào danh sách: np.random.lựa chọn (các phần tử, 10, p = xác suất)). – zeycus