Hi những người đam mê python!SciPy medfilt kết quả sai
Tôi hiện đang làm việc với bộ lọc tín hiệu cho mục đích nghiên cứu và quyết định sử dụng SciPy. Không có gì đặc biệt, chỉ tự động hóa công việc thường ngày.
Vì vậy, đây là mã
from scipy.signal import medfilt
print(medfilt([2,6,5,4,0,3,5,7,9,2,0,1], 5))
Nhưng vấn đề là sequense trở được tính sai
SciPy: [ 2. 4. 4. 4. 4. 4. 5. 5. 5. 2. 1. 0.]
Me : [ 5. 4.5 4. 4. 4. 4. 5. 5. 5. 2. 1.5 1.]
Nó có vẻ là, các nhà phát triển của gói điều sai lầm một cách chi tiết. Khi khẩu độ (hạt nhân về SciPy) lớn hơn cửa sổ để phân tích, có một quy tắc lọc khác.
Ví dụ: kernel=5
chuỗi được lọc [2, 6, 5]
có số trung vị 5 và không bằng 2 như SciPy được tính không? Và theo cách tương tự, nếu kernel=5
đối với số [2,6,5,4]
số trung vị là 5 và 4, chúng tôi cần tính trung bình giữa chúng, vì vậy, trung bình là 4,5.
Ai đó có thể giải thích cho tôi biết ai có kết quả đúng trong trường hợp đó không?
Chỉ cần mở rộng một chút về câu trả lời này, những người tìm kiếm các chức năng trung gian cán thay thế có thể xem xét: Gấu trúc trung bình: http://pandas.pydata.org/pandas-docs/stable/computation.html# di chuyển-cán-thống kê-khoảnh khắc và scipy.ndimage: http://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.ndimage.filters.median_filter.html – ConnectedSystems