Trục hoặc các trục dọc theo đó phần trăm được tính toán. Giá trị mặc định là tính toán [các] phần trăm dọc theo phiên bản phẳng của mảng
Đã thay đổi trong phiên bản 1. 9. 0. Bộ trục được hỗ trợ
ra ndarray, tùy chọnMảng đầu ra thay thế để đặt kết quả. Nó phải có cùng hình dạng và độ dài bộ đệm như đầu ra dự kiến, nhưng loại [của đầu ra] sẽ được truyền nếu cần
overwrite_input bool, tùy chọnNếu True, thì cho phép sửa đổi mảng đầu vào a bằng các phép tính trung gian, để tiết kiệm bộ nhớ. Trong trường hợp này, nội dung của đầu vào a sau khi chức năng này hoàn thành là không xác định
phương pháp str, tùy chọnTham số này chỉ định phương pháp sử dụng để ước tính phần trăm. Có nhiều phương pháp khác nhau, một số phương pháp duy nhất cho NumPy. Xem các ghi chú để giải thích. Các tùy chọn được sắp xếp theo loại R của chúng như được tóm tắt trong bài báo H&F là
'đảo ngược_cdf'
'trung bình_inverted_cdf'
'quan sát gần nhất'
'nội suy_inverted_cdf'
'khói'
'weibull'
'tuyến tính' [mặc định]
'trung vị_không thiên vị'
'bình thường_không thiên vị'
Ba phương pháp đầu tiên là không liên tục. NumPy xác định thêm các biến thể không liên tục sau đây của 'tuyến tính' mặc định [7. ] quyền mua
'thấp hơn'
'cao hơn',
'trung điểm'
'gần nhất'
Đã thay đổi trong phiên bản 1. 22. 0. Đối số này trước đây được gọi là "nội suy" và chỉ cung cấp tùy chọn "tuyến tính" mặc định và bốn tùy chọn cuối cùng.
keepdims bool, tùy chọnNếu điều này được đặt thành True, các trục bị giảm sẽ được để lại trong kết quả dưới dạng kích thước với kích thước một. Với tùy chọn này, kết quả sẽ phát chính xác so với mảng ban đầu a
Mới trong phiên bản 1. 9. 0
nội suy str, tùy chọnTên không dùng nữa cho đối số từ khóa phương thức
Không dùng nữa kể từ phiên bản 1. 22. 0
Trả về . phân vị vô hướng hoặc ndarrayNếu q là một phân vị đơn và trục=Không, thì kết quả là một đại lượng vô hướng. Nếu nhiều phần trăm được đưa ra, trục đầu tiên của kết quả tương ứng với phần trăm. Các trục khác là các trục còn lại sau khi giảm một. Nếu đầu vào chứa số nguyên hoặc số float nhỏ hơn float64
, kiểu dữ liệu đầu ra là float64
. Mặt khác, kiểu dữ liệu đầu ra giống với kiểu dữ liệu đầu vào. Nếu out được chỉ định, thay vào đó mảng đó được trả về
Xem thêm
tương đương với percentile[..., 50]
tương đương với phân vị, ngoại trừ q trong phạm vi [0, 1]
ghi chú
Cho trước một vectơ
>>> m = np.percentile[a, 50, axis=0] >>> out = np.zeros_like[m] >>> np.percentile[a, 50, axis=0, out=out] array[[6.5, 4.5, 2.5]] >>> m array[[6.5, 4.5, 2.5]]1 có độ dài
>>> m = np.percentile[a, 50, axis=0] >>> out = np.zeros_like[m] >>> np.percentile[a, 50, axis=0, out=out] array[[6.5, 4.5, 2.5]] >>> m array[[6.5, 4.5, 2.5]]2, phân vị thứ q của
>>> m = np.percentile[a, 50, axis=0] >>> out = np.zeros_like[m] >>> np.percentile[a, 50, axis=0, out=out] array[[6.5, 4.5, 2.5]] >>> m array[[6.5, 4.5, 2.5]]1 là giá trị
>>> m = np.percentile[a, 50, axis=0] >>> out = np.zeros_like[m] >>> np.percentile[a, 50, axis=0, out=out] array[[6.5, 4.5, 2.5]] >>> m array[[6.5, 4.5, 2.5]]4 trên khoảng cách từ nhỏ nhất đến lớn nhất trong một bản sao được sắp xếp của
>>> m = np.percentile[a, 50, axis=0] >>> out = np.zeros_like[m] >>> np.percentile[a, 50, axis=0, out=out] array[[6.5, 4.5, 2.5]] >>> m array[[6.5, 4.5, 2.5]]1. Các giá trị và khoảng cách của hai hàng xóm gần nhất cũng như tham số phương pháp sẽ xác định phần trăm nếu xếp hạng chuẩn hóa không khớp chính xác với vị trí của
>>> m = np.percentile[a, 50, axis=0] >>> out = np.zeros_like[m] >>> np.percentile[a, 50, axis=0, out=out] array[[6.5, 4.5, 2.5]] >>> m array[[6.5, 4.5, 2.5]]6. Hàm này giống như trung vị nếu
>>> m = np.percentile[a, 50, axis=0] >>> out = np.zeros_like[m] >>> np.percentile[a, 50, axis=0, out=out] array[[6.5, 4.5, 2.5]] >>> m array[[6.5, 4.5, 2.5]]7, giống như mức tối thiểu nếu
>>> m = np.percentile[a, 50, axis=0] >>> out = np.zeros_like[m] >>> np.percentile[a, 50, axis=0, out=out] array[[6.5, 4.5, 2.5]] >>> m array[[6.5, 4.5, 2.5]]8 và giống như mức tối đa nếu
>>> m = np.percentile[a, 50, axis=0] >>> out = np.zeros_like[m] >>> np.percentile[a, 50, axis=0, out=out] array[[6.5, 4.5, 2.5]] >>> m array[[6.5, 4.5, 2.5]]9
Tham số phương thức tùy chọn chỉ định phương thức sẽ sử dụng khi phân vị mong muốn nằm giữa hai chỉ mục
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]0 và
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]1. Trong trường hợp đó, trước tiên chúng tôi xác định
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]2, một chỉ số ảo nằm giữa
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]0 và
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]4, trong đó
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]0 là giá sàn và
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]6 là phần lẻ của chỉ số. Sau đó, kết quả cuối cùng là phép nội suy của
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]7 và
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]8 dựa trên
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]6. Trong quá trình tính toán của
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]6,
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]0 và
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]4 được sửa đổi bằng cách sử dụng các hằng số hiệu chỉnh
import matplotlib.pyplot as plt a = np.arange[4] p = np.linspace[0, 100, 6001] ax = plt.gca[] lines = [ ['linear', '-', 'C0'], ['inverted_cdf', ':', 'C1'], # Almost the same as `inverted_cdf`: ['averaged_inverted_cdf', '-.', 'C1'], ['closest_observation', ':', 'C2'], ['interpolated_inverted_cdf', '--', 'C1'], ['hazen', '--', 'C3'], ['weibull', '-.', 'C4'], ['median_unbiased', '--', 'C5'], ['normal_unbiased', '-.', 'C6'], ] for method, style, color in lines: ax.plot[ p, np.percentile[a, p, method=method], label=method, linestyle=style, color=color] ax.set[ title='Percentiles for different methods and data: ' + str[a], xlabel='Percentile', ylabel='Estimated percentile value', yticks=a] ax.legend[] plt.show[]3 và
import matplotlib.pyplot as plt a = np.arange[4] p = np.linspace[0, 100, 6001] ax = plt.gca[] lines = [ ['linear', '-', 'C0'], ['inverted_cdf', ':', 'C1'], # Almost the same as `inverted_cdf`: ['averaged_inverted_cdf', '-.', 'C1'], ['closest_observation', ':', 'C2'], ['interpolated_inverted_cdf', '--', 'C1'], ['hazen', '--', 'C3'], ['weibull', '-.', 'C4'], ['median_unbiased', '--', 'C5'], ['normal_unbiased', '-.', 'C6'], ] for method, style, color in lines: ax.plot[ p, np.percentile[a, p, method=method], label=method, linestyle=style, color=color] ax.set[ title='Percentiles for different methods and data: ' + str[a], xlabel='Percentile', ylabel='Estimated percentile value', yticks=a] ax.legend[] plt.show[]4 mà các lựa chọn của chúng phụ thuộc vào
import matplotlib.pyplot as plt a = np.arange[4] p = np.linspace[0, 100, 6001] ax = plt.gca[] lines = [ ['linear', '-', 'C0'], ['inverted_cdf', ':', 'C1'], # Almost the same as `inverted_cdf`: ['averaged_inverted_cdf', '-.', 'C1'], ['closest_observation', ':', 'C2'], ['interpolated_inverted_cdf', '--', 'C1'], ['hazen', '--', 'C3'], ['weibull', '-.', 'C4'], ['median_unbiased', '--', 'C5'], ['normal_unbiased', '-.', 'C6'], ] for method, style, color in lines: ax.plot[ p, np.percentile[a, p, method=method], label=method, linestyle=style, color=color] ax.set[ title='Percentiles for different methods and data: ' + str[a], xlabel='Percentile', ylabel='Estimated percentile value', yticks=a] ax.legend[] plt.show[]5 được sử dụng. Cuối cùng, lưu ý rằng vì Python sử dụng lập chỉ mục dựa trên 0, nên mã sẽ trừ 1 khác khỏi chỉ mục bên trong
Công thức sau xác định chỉ số ảo
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]2, vị trí của phân vị trong mẫu được sắp xếp
\[i + g = [q / 100] * [ n - alpha - beta + 1 ] + alpha\]
Các phương pháp khác nhau sau đó hoạt động như sau
inverted_cdfphương pháp 1 của H&F. Phương pháp này cho kết quả không liên tục
nếu g > 0 ;
nếu g = 0 ;
phương pháp 2 của H&F. Phương pháp này cho kết quả không liên tục
nếu g > 0 ;
nếu g = 0 ;
phương pháp 3 của H&F. Phương pháp này cho kết quả không liên tục
nếu g > 0 ;
nếu g = 0 và chỉ số là số lẻ;
nếu g = 0 và chỉ số chẵn;
phương pháp 4 của H&F. Phương pháp này cho kết quả liên tục bằng cách sử dụng
alpha = 0
beta = 1
phương pháp 5 của H&F. Phương pháp này cho kết quả liên tục bằng cách sử dụng
alpha = 1/2
hệ số bêta = 1/2
phương pháp 6 của H&F. Phương pháp này cho kết quả liên tục bằng cách sử dụng
alpha = 0
hệ số thử nghiệm = 0
phương pháp 7 của H&F. Phương pháp này cho kết quả liên tục bằng cách sử dụng
alpha = 1
beta = 1
phương pháp 8 của H&F. Phương pháp này có lẽ là phương pháp tốt nhất nếu hàm phân phối mẫu chưa biết [xem tài liệu tham khảo]. Phương pháp này cho kết quả liên tục bằng cách sử dụng
alpha = 1/3
hệ số bêta = 1/3
phương pháp 9 của H&F. Phương pháp này có lẽ là phương pháp tốt nhất nếu biết hàm phân phối mẫu là chuẩn tắc. Phương pháp này cho kết quả liên tục bằng cách sử dụng
alpha = 3/8
hệ số thử nghiệm = 3/8
Phương thức NumPy được giữ để tương thích ngược. Lấy
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]0 làm điểm nội suycao hơn
Phương thức NumPy được giữ để tương thích ngược. Lấy
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]4 làm điểm nội suygần nhất
Phương thức NumPy được giữ để tương thích ngược. Mất
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]0 hoặc
>>> b = a.copy[] >>> np.percentile[b, 50, axis=1, overwrite_input=True] array[[7., 2.]] >>> assert not np.all[a == b]4, tùy theo giá trị nào gần nhấttrung điểm
Phương thức NumPy được giữ để tương thích ngược. Sử dụng float64
1
Người giới thiệu
[ 1 ] [,,,,,,,,,]
R. J. Hyndman và Y. Fan, “Các phân vị mẫu trong các gói thống kê,” The American Statistician, 50[4], trang. 361-365, 1996