Nội suy láng giềng tự nhiên là một phương pháp nội suy dữ liệu phân tán [i. e. bạn biết các giá trị của hàm tại các vị trí rải rác]. Nó thường vượt trội so với phép nội suy barycentric tuyến tính, đây là phương pháp nội suy thường được sử dụng do hàm griddata của Scipy cung cấp
Có một số cách triển khai phép nội suy hàng xóm tự nhiên 2D trong Python. Chúng tôi cần triển khai 3D nhanh có thể chạy mà không cần GPU, vì vậy chúng tôi đã viết triển khai Nội suy Sibson rời rạc [một phiên bản nội suy lân cận tự nhiên nhanh nhưng gây ra các lỗi nhỏ so với phép nội suy lân cận tự nhiên “hình học”]
Cách sử dụng
Mô-đun này hiển thị một chức năng duy nhất, griddata
API cho naturalneighbor.griddata
tương tự như scipy.interpolate.griddata
. Không giống như scipy, đối số thứ ba không phải là một mgrid dày đặc mà thay vào đó chỉ là các phạm vi lẽ ra đã được chuyển đến mgrid
. Điều này là do cách tiếp cận Sibson rời rạc yêu cầu các điểm được nội suy nằm trên một lưới cách đều nhau
Có một số phương tiện chung có sẵn trong SciPy để nội suy và làm mịn dữ liệu ở các chiều 1, 2 và cao hơn. Việc lựa chọn một thói quen nội suy cụ thể phụ thuộc vào dữ liệu. cho dù nó là một chiều, được đưa ra trên một lưới có cấu trúc hay không có cấu trúc. Một yếu tố khác là độ mịn mong muốn của bộ nội suy. Tóm lại, các quy trình được khuyến nghị cho phép nội suy có thể được tóm tắt như sau
Tốt bụng
lịch trình
liên tục
bình luận
1D
tuyến tính
numpy.interp
từng phần liên tục
đến từ numpy
spline khối
CubicSpline
đạo hàm bậc 2
spline khối đơn điệu
PchipInterpolator
đạo hàm thứ nhất
không vượt quá
spline không lập phương
make_interp_spline
[k-1] đạo hàm thứ
k=3
tương đương với CubicSpline
gần nhất
naturalneighbor.griddata
0
loại=’gần nhất’, ‘trước đó’, ‘tiếp theo’
đường cong N-D
gần nhất, tuyến tính, spline
make_interp_spline
[k-1] đạo hàm thứ
sử dụng mảng N-dim y
Lưới N-D thông thường [tuyến tính]
gần nhất
naturalneighbor.griddata
2
phương pháp = 'gần nhất'
tuyến tính
phương pháp = 'tuyến tính'
splines
đạo hàm bậc 2
method=’cubic’, ‘quintic’
splines đơn điệu
dẫn xuất thứ nhất
phương pháp = 'pchip'
N-D rải rác
gần nhất
numpy.interp
0
bí danh. numpy.interp
1
tuyến tính
numpy.interp
2
hình khối [chỉ 2D]
numpy.interp
3
dẫn xuất thứ nhất
hàm cơ sở xuyên tâm
numpy.interp
4
Để làm mịn dữ liệu, các chức năng được cung cấp cho dữ liệu 1 và 2-D bằng cách sử dụng các đường nối khối, dựa trên thư viện FORTRAN FITPACK.
Ngoài ra, các quy trình được cung cấp để nội suy/làm trơn bằng cách sử dụng các hàm cơ sở xuyên tâm với một số nhân.
Thông tin chi tiết được đưa ra trong các liên kết dưới đây
- Nội suy 1-D
- Nội suy tuyến tính từng phần
- spline khối
- Nội suy đơn điệu
- Nội suy với B-splines
- Đường cong spline tham số
- Giao diện kế thừa cho phép nội suy 1-D [
naturalneighbor.griddata
0] - Dữ liệu bị mất
- Đa thức từng phần và splines
- Thao tác đối tượng
numpy.interp
6 - B-splines. nút thắt và hệ số
- Phần tử cơ sở B-spline
- Thiết kế ma trận trên cơ sở B-spline
- Thao tác đối tượng
- Làm mịn splines
- Làm mịn Spline trong 1-D
- Thủ tục [
numpy.interp
7] - Hướng đối tượng [
numpy.interp
8]
- Thủ tục [
- Các splines làm mịn 2-D
- Bivariate spline khớp dữ liệu phân tán
- Bivariate spline khớp dữ liệu trên lưới
- Bivariate spline khớp dữ liệu trong tọa độ hình cầu
- Làm mịn Spline trong 1-D
- Nội suy dữ liệu đa biến trên lưới thông thường [
naturalneighbor.griddata
2]- Dữ liệu cách đều nhau
- Nội suy dữ liệu phân tán [
numpy.interp
1] - Sử dụng các hàm cơ sở xuyên tâm để làm mịn/nội suy
- Ví dụ 1-D
- Ví dụ 2 chiều
- Mẹo và thủ thuật ngoại suy
naturalneighbor.griddata
0. sao chép các giá trị điền vào bên trái và bên phải củanumpy.interp
- CubicSpline mở rộng các điều kiện biên
- Thực hiện thủ công các tiệm cận
- thiết lập
- Sử dụng các tiệm cận đã biết
- Ngoại suy trong
CubicSpline
3