Tôi binning một mảng 2ngày (x bởi y) trong Python vào thùng của giá trị x của nó (được đưa ra trong "thùng"), sử dụng np.digitize:cách tiếp cận vectorized để binning với NumPy/scipy bằng Python
elements_to_bins = digitize(vals, bins)
nơi "Vals" là một mảng 2d, ví dụ:
vals = array([[1, v1], [2, v2], ...]).
elements_to_bins chỉ nói những gì bin mỗi phần tử rơi vào. Những gì tôi muốn làm là lấy danh sách có chiều dài là số lượng thùng trong "thùng", và mỗi phần tử trả về giá trị y của "vals" rơi vào thùng đó. Tôi làm theo cách này ngay bây giờ:
points_by_bins = []
for curr_bin in range(min(elements_to_bins), max(elements_to_bins) + 1):
curr_indx = where(elements_to_bins == curr_bin)[0]
curr_bin_vals = vals[:, curr_indx]
points_by_bins.append(curr_bin_vals)
là có cách nào thanh lịch/đơn giản hơn để thực hiện việc này? Tất cả những gì tôi cần là danh sách các danh sách các giá trị y rơi vào mỗi thùng.
cảm ơn.
Nếu một trong những câu trả lời đã giải quyết được vấn đề của bạn, hãy đánh dấu nó là được chấp nhận (dấu kiểm màu xanh lục)! :) – EOL