Về cơ bản, tôi có một mảng có thể thay đổi giữa hai số bất kỳ và tôi muốn bảo toàn phân phối trong khi ràng buộc nó với không gian [0,1]. Chức năng làm điều này rất đơn giản. Tôi thường viết nó như:Mảng NumPy bị giới hạn bởi 0 và 1?
def to01(array):
array -= array.min()
array /= array.max()
return array
Tất nhiên nó có thể và nên phức tạp hơn để giải thích cho tình huống tấn, chẳng hạn như tất cả các giá trị là như nhau (chia cho số không) và nổi vs phân chia số nguyên (sử dụng np.subtract và np.divide thay vì các toán tử). Nhưng đây là cơ bản nhất.
Vấn đề là tôi làm điều này rất thường xuyên trên các công cụ trong dự án của tôi, và nó có vẻ giống như một hoạt động toán học khá chuẩn. Có một chức năng được xây dựng trong đó thực hiện điều này trong NumPy?
Tôi là một chút bối rối bởi vì nếu bạn bình thường hóa một mảng ints giữa 0 và 1 bạn sẽ chỉ có một mảng các số không và một. Có nghĩa là bạn sẽ mất rất nhiều thông tin phân phối. – BKay
bạn đã xem qua các tài liệu chưa? – wwii
@ user3557216 này trông khá hiệu quả, nhưng tôi sẽ thay đổi 'mảng' thành tên khác để tránh làm đổ bóng hàm' np.array() '... –