Numpy: рдкреБрдирд░реНрдЧрдарди рдкреНрд░рддрд┐рд╢рддрдХ рд╡рд┐рдзрд┐рдпрд╛рдБ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 12 рдорд╛рд░реНрдЪ 2018  ┬╖  53рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: numpy/numpy

рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкреГрд╖реНрда рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: https://en.wikipedia.org/wiki/Percentile#The_nearest -rank_method

00 - Bug 01 - Enhancement high

рд╕рднреА 53 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ? рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:

>>> np.percentile(15, 20, 35, 40, 50], [5, 30, 40, 50, 100], interpolation='lower')
array([15, 20, 20, 35, 50])

рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ред рдЙрджрд╛рд╣рд░рдг 2 рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкреГрд╖реНрда рдореЗрдВ рджреЗрдЦреЗрдВ:

>>> np.percentile([3, 6, 7, 8, 8, 10, 13, 15, 16, 20], [25,50,75,100], interpolation='lower')
array([ 7,  8, 13, 20])

рдЬрдм рдпрд╣ [7,8,15,20] рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рдпрд╣ рдЗрд╕реА рддрд░рд╣ рддреАрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

рдирд┐рдХрдЯрддрдо "рдмрд╣реБрдд рдкрд╛рд╕" рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ? рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдФрд░ рдмрд┐рдВрджреБ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕реАрдорд╛рдПрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣ рд╣реИ, рдЬрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 0 рдФрд░ 100 рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдбреЗрдЯрд╛рдкреЗрдЯ рдкрд░ рдпрд╛ рдбреЗрдЯрд╛ рдкреЙрдЗрдВрдЯ рд╕реЗ рдкрд╣рд▓реЗ? (рд╡рд╣ рдЖрдИрдЖрдИрдЖрд░рд╕реА рд╣реИ, рд╡реИрд╕реЗ рднреА рдпрд╣рд╛рдВ рдмрд╣реБрдд рдХрд╖реНрдЯрдкреНрд░рдж рдЬрдЯрд┐рд▓рддрд╛рдПрдВ рд╣реИрдВ)

рдЗрд╕реЗ рдирд╣реАрдВ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдВрддрд░ рд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдиреАрдЪреЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдХреЛрдИ рдРрд╕рд╛ рд╡реНрдпрдХреНрддрд┐ рдЬрд╛рдирддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ ...ред

рд╕рдЪ рдХрд╣реВрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫреА рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдмреЗрд╣рддрд░ рдкреНрд░рд▓реЗрдЦрди рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдФрд░ рдХреЛрдИ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рд╛рдорд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ...ред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рд╕реА-рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдЪреБрдирдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╡рд╛рдВрдЫрдиреАрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдПрдХ рдФрд░ рдзрд╛рдЧрд╛ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рд╕рдВрдпреЛрдЧрд╡рд╢ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЙрдард╛рддрд╛ рд╣реИ (Dec 2016)ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЬрд┐рд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдФрд░ рдЬрд┐рд╕реЗ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдирд┐рдХрдЯрддрдо рд░реИрдВрдХ рдХрд╣рддрд╛ рд╣реИ) рд╣реНрдпрдВрдбрдорд╛рди-рдлреИрди (рдПрдЪрдПрдВрдбрдПрдл) рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЙрджреНрдзреГрдд

рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ рдХрд┐ рд╕реБрдкреА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдпрд╣ рдХреИрд╕реЗ рджрд┐рдЦреЗрдЧрд╛ рдХрд┐ рд╕рд╣рдЬ рд░реВрдк рд╕реЗ рдПрдХ рд╕рдорд╛рди рдЪреАрдЬрд╝ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ (рдЬреИрд╕реЗ, 'рдХрдо', 'рдирд┐рдХрдЯрддрдо'):

percentiles

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдкрд╣рд▓реА рдирдЬрд░ рдореЗрдВ рд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдирд┐рдХрдЯрддрдо рд╡рдХреНрд░ рдЕрдзрд┐рдХ рдлреИрд▓рд╛ рд╣реБрдЖ рд╣реИ рдлрд┐рд░ рдПрдЪ рдПрдВрдб рдПрдл рд╡рдХреНрд░, рдЬреЛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЙрдкрдпреЛрдЧ 1 рдФрд░ рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдПрдЪ рдПрдВрдб рдПрдл 0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд░ рдЖрдк рдкреНрд░рдорд╛рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВред 1000 рдмрд╛рд░ рджреЛрд╣рд░рд╛рдП рдЧрдП рд╕рдорд╛рди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реА рдмрд╛рдд рджреЛрд╣рд░рд╛рдПрдВ, рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рд╡реЗ рдЕрднрд┐рд╕рд░рдг рдХрд░реЗрдВрдЧреЗред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╛ рд╢рд╛рдпрдж рдирд╣реАрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдзреИрд░реНрдп рдпрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЧрд▓рдд рд╕рдмреВрдд рджреЗрдВ :)

рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдл рдкреНрд░рддрд┐рд╢рдд рдбреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдЧрд╛

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЕрдзрд┐рдорд╛рдирддрдГ рдбрд┐рд╕рдХрдВрдЯрд┐рдирд┐рдЯреА рдХреЗ рдЦреБрд▓реЗ / рдмрдВрдж рд╣реЛрдиреЗ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ

рдкрд╛рдардХреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ: рдЗрд╕ рд╕реВрддреНрд░ рдХреЛ рдкреНрд░рдмрдВрдзрдиреАрдп рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рдЖрд▓реЗрдЦ рдХреЛ "рд╣рд▓" рдХреЗ рд░реВрдк рдореЗрдВ рдбреЙрдХреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рд╕рднреА рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдЧреНрд░рд╛рдл рдЕрдм https://numpy.org/devdocs/reference/generated/numpy.percentage.html рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдкрд░ рд╣реИ

@ eric-wieser рдореБрдЭреЗ рд╡рд╣ рдЧреНрд░рд╛рдл рдмрдирд╛рдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЖрдЬ рдХреБрдЫ рдмрд╛рдж рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдКрдВрдЧрд╛, рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

@seberg рдореИрдВ рдпрд╣рд╛рдВ рдИрдорд╛рдирджрд╛рд░

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рд╣рдореЗрд╢рд╛ рдЙрд╕реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╡рд╣рд╛рдБ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЗрд╕реЗ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдкреНрд░рддрд┐рд╢рддрдХ рдХреА рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рднрд╛рд╖рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ 'рдЕрдЬреАрдм' рдкреИрд░рд╛рдореАрдЯрд░ рдмрджрд▓рдирд╛, рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

@ ricardoV94 , рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╕рд┐рд░реНрдл рдЪреВрдХ рдХреЛ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрддреЗ, рдЪрд╛рд╣реЗ рд╡реЗ рдХрд┐рддрдиреЗ рднреА рдмреБрд░реЗ рд╣реЛрдВред рд╣рдо рджреЛрдиреЛрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ = "рдПрдЪ рдПрдВрдб рдХреЗ" рдХреА рддрд░рд╣ рдХреБрдЫ рднреА рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

C рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдбреЗрдЯрд╛ рдкреЙрдЗрдВрдЯреНрд╕ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ 0% рдФрд░ 100% рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рдкрд░ рдпрд╛ рдирд╣реАрдВ, рдЖрджрд┐)ред рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдкреИрд░рд╛рдореАрдЯрд░ C рдореЗрдВ, рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХреЗрд╡рд▓ рдкреНрд░рдХреНрд╖реЗрдк рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдпрд╣рд╛рдВ рдЕрдВрддрд░ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИред C рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрджрд┐рдЧреНрдз рд╣реИ, рдПрдХ рдЙрдЪрд┐рдд рдирд╛рдо рд░реЗрдВрдЬ = 'рдиреНрдпреВрдирддрдо-рдЕрдзрд┐рдХрддрдо' рдпрд╛ рд╢реНрд░реЗрдгреА = 'рдПрдХреНрд╕рдЯреНрд░рдкрд▓реЗрдЯреЗрдб' рдпрд╛ рд╢рд╛рдпрдж рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреБрдЫ рдЕрд▓рдЧ рдЬреИрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдХрдИ рд╕рд╛рд░реЗ рдбреЗрдЯрд╛рдкреЙрдЗрдВрдЯреНрд╕ (рд╕рдВрднрд╡рддрдГ рдЫреЛрдЯреЗ рд╢реЛрд░ рдХреЗ рд╕рд╛рде) рдХреЗ рд╕рд╛рде рдкреНрд▓реЙрдЯреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЕрднрд┐рд╕рд░рдг рджреЗрдЦреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд░реЗрдВрдЬ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддреА рд╣реИред

@рдмрд░реНрдЧ рдореИрдВ рд╡рд┐рдзрд┐ = "рдПрдЪ рдПрдВрдб рдХреЗ" рдпрд╛ рд╢рд╛рдпрдж рд╡рд┐рдзрд┐ = "рдХреНрд▓рд╛рд╕рд┐рдХ" рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВред рдкреНрд░рдХреНрд╖реЗрдк = "рдХреЛрдИ рдирд╣реАрдВ" рднреА рд╕рдордЭ рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЙрдХреНрд╕ рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдХреНрдпрд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд┐рд╕рд╛рд▓ рд╣реИред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдбреЙрдХреНрд▓реЛрдкреНрд▓рд┐рдм рдХреЛрдб рдХреЛ рдбреЙрдХреНрд╕ рдХреЗ рднреАрддрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХрд╣реАрдВ рдФрд░ рдХрд░рддреЗ рд╣реИрдВ - рдЬреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдпрд┐рдд рд░рд╣реЗред

рдареАрдХ рд╣реИ, рдореИрдВ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдХреЛрдб-рдЫрд╡рд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреВрдВрдЧрд╛ред

рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рднрд╛рдЧ рдбрд┐рд╕рдХрдВрдЯрд┐рдирд┐рдЯреА рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ, рдмрдВрдж рдорд╛рд░реНрдХрд░ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдЯрд▓рдкреЛрдЯрд▓рд┐рдм рдореЗрдВ рдЙрд╕ (afaik) рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИред рд╣рд╛рд░реНрдб-рдХреЛрдбрд┐рдВрдЧ рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдереЛрдбрд╝реА рд╕рдордЭ рд╣реЛрдЧреАред

рд╢рд╛рдпрдж рдЕрдм рдХреЗ рд▓рд┐рдП рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ matplotlib рдХреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдорд░реНрдерди рдорд┐рд▓реЗред

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдПрдХ рдмреЗрд╣рддрд░ рд╕реБрдЭрд╛рд╡ рд╣реЛрдЧрд╛, рдЬреЛ рдЕрднреА рднреА рдЕрд╕рдВрддреЛрд╖ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╣реИред

import matplotlib.pyplot as plt

a = [0,1,2,3]
p = np.arange(101)

plt.step(p, np.percentile(a, p, interpolation='linear'), label='linear')
plt.step(p, np.percentile(a, p, interpolation='higher'), label='higher', linestyle='--')
plt.step(p, np.percentile(a, p, interpolation='lower'), label='lower', linestyle='--')
plt.step(p, np.percentile(a, p, interpolation='nearest'), label='nearest', linestyle='-.',)
plt.step(p, np.percentile(a, p, interpolation='midpoint'), label='midpoint', linestyle='-.',)

plt.title('Interpolation methods for list: ' + str(a))
plt.xlabel('Percentile')
plt.ylabel('List item returned')
plt.yticks(a)
plt.legend()

Image

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ interpolation = 'linear' рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЪрд░рдгрдмрджреНрдз рд░реЗрдЦрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛ рдЕрдЪреНрдЫреА рд▓рдЧрддреА рд╣реИред рдХреНрдпрд╛ рдЖрдк рдбреЙрдХреНрд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ PR рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, step рдЖрдо рддреМрд░ рдкрд░ рднреНрд░рд╛рдордХ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рд╣реВрдВред linspace(0, 100, 60) рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдордзреНрдпрд╡рд░реНрддреА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рднреА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛

рдореБрдЭреЗ рдХреЛрдИ рдЕрдВрджрд╛рдЬрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреАрдЖрд░ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реБрдЭрд╛рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрдкрдиреЗ рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк C рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ (рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдЕрдкрдиреЗ рдкреНрд░рддрд┐рд╢рддрдХ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рдлрд┐рд░ рдЗрд╕реЗ рд╕реБрдкреАрд░рд┐рдпрд░ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреНрд▓рдЧ рдХрд░реЗрдВ (рдЬреЛ C = 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЕрднреА рддрдХ рдмрд╛рдзреНрдп рдкреНрд░рддрд┐рд╢рдд рдореЗрдВ рд╕реЗ рд╕рд╣реА рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдПрдХ рдиреЛ-рдСрдк рд╣реИ):

def scale_percentiles(p, num, C=0):
     """
     p : float
          percentiles to be used (within 0 and 100 inclusive)
     num : int
         number of data points.
     C : float
         parameter C, should be 0, 0.5 or 1. Numpy uses 1, matlab 0.5, H&K is 0.
     """
     p = np.asarray(p)
     fact = (num-1.+2*C)/(num-1)
     p *= fact
     p -= 0.5 * (fact-1) * 100
     p[p < 0] = 0
     p[p > 100] = 100
     return p

рдФрд░ рд╡реЛрдЗрд▓рд╛, "рдирд┐рдХрдЯрддрдо" рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдЕрдкрдирд╛ "рдПрдЪ рдПрдВрдб рдПрдл" рдорд┐рд▓реЗрдЧрд╛ рдФрд░ рд░реИрдЦрд┐рдХ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╕реЗ рдкреНрд▓реЙрдЯ рдорд┐рд▓реЗрдЧрд╛ред (рд▓рдВрдмрд┐рдд рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдЧрд▓рдд рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВ рд╕рд╣реА рд╣реВрдВ)ред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ 0-100 (рд╕рдорд╛рди рд░реВрдк рд╕реЗ) рд╕реЗ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд░рдЦрддреЗ рд╣реИрдВред C = 1 рдХреЗ рд▓рд┐рдП рдЖрдк 0 рд╡реЗрдВ рдкреНрд░рддрд┐рд╢рдд рдкрд░ рдорд┐рдирдЯ (рдбреЗрдЯрд╛) рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдореБрдЭреЗ "рдХреНрдпрд╛ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕реБрд░рд╛рдЧ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рдВрднрд╡рддрдГ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред 1 рдХреЗ рд▓рд┐рдП рд╕рдорд╛рд╡реЗрд╢реА рдирд╛рдо рдФрд░ 0 рдХреЗ рд▓рд┐рдП рдЕрдирдиреНрдп, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдереЛрдбрд╝рд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддрд╛ рд╣реИ (рдЬрдм рдЖрдк рдкреНрд░рддрд┐рд╢рдд рдХреА рдХреБрд▓ рд╕реАрдорд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдирдиреНрдп рд╕рдВрднрд╡ рдбреЗрдЯрд╛ рд╢реНрд░реЗрдгреА рдХреЗ рдмрд╛рд╣рд░ рд╣реИ)ред C = 1/2 рднреА рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдЕрдирдиреНрдп рд╣реИред

рдореИрдВ рд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рд╡рд░реНрдгрдирд╛рддреНрдордХ рдирд╛рдо рдХреЗ рд╕рд╛рде рдЖ рд╕рдХреЗред рдореИрдВ рдПрдХ "рд╡рд┐рдзрд┐" рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рднреА рдмреБрд░рд╛ рдирд╣реАрдВ рдорд╛рдиреВрдВрдЧрд╛ рддрд╛рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЪреВрдХ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ (рдкреНрд░рдХреНрд╖реЗрдк + рд╕реА рдХрд╛ рд╕рдВрдпреЛрдЬрди)ред рдпрд╛, рдЖрдк рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣ рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ, рдареАрдХ рд╣реИ ...ред

рдЕрдВрдд рдореЗрдВ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ: рдореИрдВ рдПрдХ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрд╡рд┐рджреН рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХрд┐рди рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдЖрдо рд╕рд╣рдорддрд┐ рд╣реИ (рдЖрд░ рдореЗрдВ рдХреБрдЫ рд╕рд╛рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрдм рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдпрд╣рд╛рдВ рдЖрдпрд╛ рдерд╛ рддреЛ рдпрд╣ рдЖрд░ рдбреЙрдХ рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЕрддреАрдд рдерд╛ рдЬреЛ рдЗрд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рд╕рднреА, рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрдХрд╛рд░ рд╣реИ, рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрдХрд╛рд░ рдерд╛, рдХрд╛рдЧрдЬреЛрдВ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддреЗ рд╣реБрдП рдФрд░ рдЕрдзрд┐рдХ рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧрд╛)ред

рдореИрдВ рдЙрд╕ H & F рдкреЗрдкрд░ рдХреЛ рдирд╣реАрдВ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддрд╛ (рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдпрд╣ рдкрдврд╝рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдзреАрдорд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕рдорд░реНрдерди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╕реБрдиреНрди "рдирд┐рдХрдЯрддрдо" (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп) рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╕рдорд░реНрдерди (рдкреНрд░рддрд┐рд╢рдд рдореЗрдВ) рдирд╣реАрдВ рд╣реИ, рдПрдЪ рдПрдВрдб рдПрдл рдХреЛ "рдирд┐рдХрдЯрддрдо" рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╕рдорд░реНрдерди рд╣реИ рдФрд░ рд╢рд╛рдпрдж рдорд┐рдбрдкреЙрдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдпрд╣ C = 1/2 рд╣реЛрдЧрд╛, рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИред
рдореИрдВ рдЦреБрдж рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд░рд╣рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд░реНрдерди рддрд░реНрдХ (рд╕реА = 1 рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬреИрд╕реЗ рдХрд┐ рдЦрддрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ), рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░рдг рд╣реИред

EDIT: рдорд┐рдбрдкреЙрдЗрдВрдЯ рдХрд╛ рд╕рдорд╛рди рд╕рдорд░реНрдерди рд╣реИ (рдбреЗрдЯрд╛ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП, рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рд╣реА рдирд╣реАрдВ), рдЦрд╕реНрддрд╛ рдореЗрдВ, рдЗрд╕рд▓рд┐рдП "= 1" рдХреЗ рд╕рд╛рде

@seberg рдпрд╣ рдореЗрд░реЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЕрдкрдирд╛ рдХреЛрдб рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд╕рд╛рдЗрди рдЕрдк рдЧрд▓рдд рдорд┐рд▓рд╛, рдЙрд╕ рдХреЛрдб рдореЗрдВ рд╡рд╣рд╛рдБ рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд┐рдкрд░реАрдд рдерд╛ (рд╕реА = 0 рдПрдХ рдиреЛ-рдСрдк рди рд╕реА = 1:

def scale_percentiles(p, num, C=0):
     """
     p : float
          percentiles to be used (within 0 and 100 inclusive)
     num : int
         number of data points.
     C : float
         parameter C, should be 0, 0.5 or 1. Numpy uses 1, matlab 0.5, H&F is 0.
     """
     p = np.asarray(p)
     fact = (num+1.-2*C)/(num-1)
     p *= fact
     p -= 0.5 * (fact-1) * 100
     p[p < 0] = 0
     p[p > 100] = 100
     return p
plt.figure()
plt.plot(np.percentile([0, 1, 2, 3], scale_percentiles(np.linspace(0, 100, 101), 5, C=0), interpolation='nearest'))
plt.plot(np.percentile([0, 1, 2, 3], scale_percentiles(np.linspace(0, 100, 101), 5, C=1), interpolation='nearest'))
plt.figure()
plt.plot(np.percentile([15, 20, 35, 40, 50], scale_percentiles(np.linspace(0, 100, 101), 5, C=1), interpolation='linear'))
plt.plot(np.percentile([15, 20, 35, 40, 50], scale_percentiles(np.linspace(0, 100, 101), 5, C=0.5), interpolation='linear'))
plt.plot(np.percentile([15, 20, 35, 40, 50], scale_percentiles(np.linspace(0, 100, 101), 5, C=0), interpolation='linear'))

@seberg рдХрд░реАрдм рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рд╡рд╣рд╛рдБ рдирд╣реАрдВред a = [0,1,2,3] рдФрд░ percentiles = [25, 50, 75, 100] , np.percentile (a, scale_percentiles(percentiles, len(a), C=0), interpolation='nearest) [0, 2, 3, 3] , рдЬрдм рдЗрд╕реЗ [0,1,2,3] рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд╕реВрдЪреА рдХреЛ dtype=np.float рдпрд╛ рдЖрдкрдХрд╛ рдХрд╛рд░реНрдп рддреНрд░реБрдЯрд┐ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рд╣реИред

рд╢рд╛рд╕реНрддреНрд░реАрдп рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд╕рд░рд▓ рд╣реИ:
рдкреНрд░рддрд┐рд╢рдд / 100 * N -> рдпрджрд┐ рдпрд╣ рдкреВрд░реА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬреЛ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЫрдд рдХреЛ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╕реА рддрд░реНрдХ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рд▓реЛрдЧ рдЗрд╕реЗ рдкреНрд░рдХреНрд╖реЗрдк рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореИрдВ рдЕрднреА рднреА рдПрдХ рд╡рд┐рдзрд┐ = 'рдХреНрд▓рд╛рд╕рд┐рдХ' рдпрд╛ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди = 'рдХреЛрдИ рдирд╣реАрдВ' рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреЛ рдХрд┐ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдореЗрд░реА рдЧреИрд░-рд╢рд╛рд╕реНрддреНрд░реАрдп рд╡рд┐рдзрд┐ рдХрд╛ рдЧреИрд░-рдЦрд╕реНрддрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ:

def percentile (arr, p):
    arr = sorted(arr)

    index = p /100 * len(arr)

    # If index is a whole number, and larger than zero, subtract one unit (due to 0-based indexing)
    if index%1 < 0.0001 and index//1 > 0:
        index -= 1

    return arr[int(index)]

рдФрд░ рдПрдХ рдЕрдзрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдПрдХ:

def indexes_classic(percentiles, set_size):
    percentiles = np.asarray(percentiles)

    indexes = percentiles / 100* set_size
    indexes[np.isclose(indexes%1, 0)] -= 1
    indexes = np.asarray(indexes, dtype=np.int)
    indexes[indexes < 0] = 0
    indexes[indexes > 100] = 100

    return indexes

рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ / рд░рд╛рдЙрдВрдбрд┐рдВрдЧ рдЗрд╢реНрдпреВрдЬрд╝ (рдЬреЛ рдЖрдк рд╣реИрдВ, рдЬреИрд╕реЗ рд╡реЗ рдЕрдВрддрд░ рдзреНрд╡рдирд┐ рдХрд░рддреЗ рд╣реИрдВ
рдкрддрд╛ рд▓рдЧрддрд╛ рд╣реИ), рдФрд░ рд╢рд╛рдпрдж C = 0 рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рдЧрд▓рдд рдерд╛ рдФрд░ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рд╕реА = 0.5ред
рдореЗрд░рд╛ рдХрд╣рдирд╛ рдпрд╣ рдерд╛ рдХрд┐ рдЕрдВрддрд░ рдХрд╣рд╛рдБ рд╕реЗ рдЖрддрд╛ рд╣реИ ("рд╕реА рдкреИрд░рд╛рдореАрдЯрд░"
рдЖрдИрдПрдордУ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрдИ рдХреЛ рдирд╛рдкрд╕рдВрдж рдХрд░рдиреЗ рдХреЗ рдЕрдЪреНрдЫреЗ рдХрд╛рд░рдг рд╣реИрдВ
рд╕рдВрдпреЛрдЬрди)ред рдпрд╣ рдЖрдкрдХреЛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рджреЗрдиреЗ / рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдерд╛ред

"рд╢рд╛рд╕реНрддреНрд░реАрдп" рдкрджреНрдзрддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд╢рд╛рд╕реНрддреНрд░реАрдп рдХреНрдпрд╛ рд╣реИ
рдРрд╕рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рд╕реНрддреНрд░реАрдп рдХрд╛ рдЕрд░реНрде рд╣реИ "рдХрд╛рдлреА рдХреБрдЫ
рд▓реЛрдЧ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ тАЭред

рд╕рдорд╛рдзрд╛рди рд╡рд╛рд░, рдореЗрд░реА рдкрд╣рд▓реА рдзрд╛рд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ "рд╢рд╛рд╕реНрддреНрд░реАрдп" рдпрд╛ рдЬреЛ рднреА рд╣реЛ
рдирд╛рдо, рдХреЗрд╡рд▓ рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рднреНрд░рд╛рдордХ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ
рдпрд╣ рдЪрд░реНрдЪрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рдмрдирд╛рдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЬрд╛ рд╕рдХрддреА рд╣реИ
рд╕реНрд╡рдЪреНрдЫ рдФрд░ рдкрд╛рд░рджрд░реНрд╢реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ (рдЖрдо) рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рд╣реИрдВ
рдорд╛рд░реНрдЧред рдПрдХ рддрд░рд╣ рд╕реЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдЬрд┐рд╕реЗ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдПрдХ рдФрд░ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореИрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЖрдзрд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдЬрдм рд╣рдо
рдкрд┐рдЫрд▓реЗ рдФрд░ рддрд░реАрдХреЗ рдЬреЛрдбрд╝реЗ (рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓рд╛ рд╣реИ) I
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЗрд░реА рд╣реЛ рдЧрдИ рдФрд░ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдХреВрдж рдЬрд╛рдПрдЧрд╛ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд╣рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рд╣реБрдЖред рдФрд░ рдЕрдм
рдореИрдВ рдорддрднреЗрджреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдлрд┐рдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдореЗрд░реА рдзрд╛рд░рдгрд╛ рдЧреЛрд▓ рдФрд░ рд╕рдЯреАрдХ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╣реИ
рдкреНрд░рддрд┐рд╢рддрдХ рдореИрдЪ) рд╣рдорд╛рд░реЗ рдкрд╛рд╕ (рд╢рд╛рдпрдж рдмрд╣реБрдд) рдХрдИ "рдкреНрд░рдХреНрд╖реЗрдк" рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ
рдФрд░ "рд╕реА рдкреИрд░рд╛рдореАрдЯрд░" рдпрд╛ рдЬреЛ рднреА рдЖрдк рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред
рдФрд░ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдХреЛрдИ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдХреИрд╕реЗ
(рд╕рд╛рдорд╛рдиреНрдп) "рд╡рд┐рдзрд┐рдпрд╛рдБ" рдЙрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрддреА рд╣реИрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ
рдФрд░ рдлрд┐рд░ C = 0,0.5,1 рднреА рдореМрдЬреВрдж рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдХреБрдЫ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдмрд╛рд╣рд░ рднреА
рд╡рд┐рдХрд▓реНрдк ....

рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рдд рд▓реЗрди рдкрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди "рдореЗрдердб 1" рдХреЛ рдЬреЛрдбрд╝рдХрд░
рдЕрд╕реНрдкрд╖реНрдЯ рдирд╛рдо рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рдХреЛ рдирд╣реАрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЕрд▓рдЧ рд╣реИ
рдЕрдиреНрдп рд╡рд┐рдзрд┐рдпрд╛рдБ рдореБрдЭреЗ рдорджрджрдЧрд╛рд░ рдирд╣реАрдВ рд▓рдЧрддреАрдВ (рдХрд┐рд╕реА рдХреЛ рдЫреЛрдбрд╝рдХрд░)
"Method1" рдирд╛рдо рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдвреВрдВрдв рд░рд╣рд╛ рд╣реИред рддрдерд╛
рдХреГрдкрдпрд╛ рдпрд╣ рдордд рдХрд╣реЛ рдХрд┐ "рдХреНрд▓рд╛рд╕рд┐рдХ" рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд╡рд╣рд╛рдБ рд╣реИ
рд╡реИрд╕реЗ рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рдЪрд░рдгред

рдПрдХ рдФрд░ рддрд░реАрдХрд╛ "рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди" рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реВрдЪреА рд╣реЛрдирд╛
рддрд░реАрдХреЛрдВ рдХреА рднреА рдмрд╣реБрдд рдХрдо рдЕрдЪреНрдЫрд╛ рд╣реИ рддреЛ "рд░реИрдЦрд┐рдХ рдкреНрд░рдХреНрд╖реЗрдк" рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛
рдпрд╣ рдХрд╣рдирд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╕реМрддреЗрд▓рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реИ, рдЖрджрд┐ .... рдФрд░ рдЕрдЧрд░ рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ,
рдореИрдВ рдЕрдм рднреА рдПрдХ рдЙрдЪрд┐рдд рдЕрд╡рд▓реЛрдХрди рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЬреЛ рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ!

рдореБрдЭреЗ рдЗрд╕реЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдиреЗ рджреЗрдВ:

1) рдЕрднреА рд╕реБрдиреНрди рдХреЗрд╡рд▓ рдПрдХ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рдкреНрд░рдХреНрд╖реЗрдк = 'рд░реИрдЦрд┐рдХ', рдФрд░ рдЕрдиреНрдп рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХреЗрд╡рд▓ рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдХрдИ рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

2) C = 0 рдпрд╛ C = 0.5 рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдорд╛рди рдЬреЛрдбрд╝рдирд╛, рдореЗрд░реЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╕рднреА рдкреНрд░рдХреНрд╖реЗрдк рд╡рд┐рдзрд┐рдпрд╛рдВ рдЙрдирдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдлрд┐рд░ рд╕реЗ рд╡реЗ рд╢рд╛рдпрдж рдХрднреА рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирд╣реАрдВ рд╣реИрдВред

3) рдпрджрд┐ рдкреНрд░рдХреНрд╖реЗрдк рд╡рд┐рдзрд┐ рдФрд░ рд╕реА рддрд░реНрдХ рдХреЗ рдмреАрдЪ рдХреЙрдореНрдмреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ, рд╢рд╛рд╕реНрддреНрд░реАрдп рд╡рд┐рдзрд┐ (рд╕рдВрджрд░реНрдн рдФрд░ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдФрд░ рдореЗрд░реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рд╕реЗ рд╕рд╣рдордд рд╣реИ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкрдврд╝рд╛рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рддрд░реАрдХрд╛ рд╣реИ) рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕рд╕реЗ рдЦреБрд╢ рд╣реВрдВред рдбреЙрдХреНрд╕ рдореЗрдВ рдпрд╣ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЙрдореНрдмреЛ рд╢рд╛рд╕реНрддреНрд░реАрдп рдЧреИрд░-рдкреНрд░рдХреНрд╖реЗрдк рд╡рд┐рдзрд┐ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдлреНрд▓реЛрдЯ рд╕рдЯреАрдХ рдореБрджреНрджреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЕрдзрд┐рдХ рдПрдХреАрдХреГрдд рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ!

4) рдЕрдЧрд░ рдХреЙрдореНрдмреЛ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдзрд┐ рд╕рдордЭ рдореЗрдВ рдЖрдПрдЧреАред рд╕рдВрднрд╡рддрдГ рдкреНрд░рдХреНрд╖реЗрдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ = 'рдХреЛрдИ рдирд╣реАрдВ' рдХрдо рднреНрд░рд╛рдордХ рд╣реЛрдЧрд╛ред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: numpy.percentile рдХреЗ рд╡рд░реНрддрдорд╛рди рд╡рд┐рдХрд▓реНрдк рджреЛрдиреЛрдВ рднреНрд░рд╛рдордХ рдФрд░ рд╕реАрдорд┐рдд рд╣реИрдВред рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд╛рдЧрдЬ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрд╡рд▓реЛрдХрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкреГрд╖реНрда рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░, рд╡реЗ numpy.percentile рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдФрд░ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛ред

рдХреНрдпрд╛ рд╡рд░реНрддрдорд╛рди "рдирд┐рдХрдЯрддрдо" рдХреБрдЫ / рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ? рдпрджрд┐ рд░рд┐рдХреНрддрд┐ рд╡рд┐рдзрд┐ ("C") рдпрд╛ рдЬреЛ рднреА рд░реИрдЦрд┐рдХ рдкреНрд░рдХреНрд╖реЗрдк / рднрд┐рдиреНрдирд╛рддреНрдордХ рд╕рд╛рдорд╛рди рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рд╢рд╛рдпрдж рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдХрднреА рднреА рдЧреИрд░-рднрд┐рдиреНрдирд╛рддреНрдордХ рд╕рдиреНрдирд┐рдХрдЯрди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ ?! рдХреНрдпрд╛ рдирд┐рд░рдВрддрд░ рд╕рдорд░реНрдерди рд╕рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдФрд░ рдкреНрд░рдХреНрд╖реЗрдк рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд╕реАрдбреАрдПрдл рд╡реНрдпреБрддреНрдХреНрд░рдо рддрд░реНрдХ рдХреЛ рдбрдВрдк рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░рдг рд╣реИ?

рдХреЙрдореНрдмреЛ рдмреЗрдХрд╛рд░ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╡реЗ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИред рдкреНрд░рдХреНрд╖реЗрдк рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рдореМрдЬреВрдж рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП http://mathworld.wolfram.com/Quantile.html Q4 рд╕реЗ Q9, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ R рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡рддрдГ рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП matlab ...) рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╕реБрд░рд╛рдЧ рдирд╣реАрдВ рд╣реИ рдЕрдЧрд░ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ;)ред

рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ "рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдХреНрд╖реЗрдк" рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди "рд░реИрдЦрд┐рдХ рдкреНрд░рдХреНрд╖реЗрдк" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХрдо рд╕реЗ рдХрдо рдЙрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рдХрдИ (рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ) рддрд░реАрдХреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд░рд╛рдм рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдЖрдк рдПрдХ "рдирд┐рдХрдЯрддрдо-рд░реИрдВрдХ" рдЪрд╛рд╣рддреЗ рдереЗ рдЬреЛ рдмрд╣реБрдд рд▓рдЧрддрд╛ рд╣реИ (рдФрд░ рдЖрддреНрдорд╛ рдореЗрдВ рд╣реИ) рдкреНрд░рдХреНрд╖реЗрдк = "рдирд┐рдХрдЯрддрдо", рд▓реЗрдХрд┐рди рд╕рдЯреАрдХ "рд╕рд╛рдЬрд┐рд╢ рдХреА рд╕реНрдерд┐рддрд┐" рдХрд╛ рд╡рд┐рдХрд▓реНрдк "рдЧреИрд░-рдорд╛рдирдХ" рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдПрдХ рдЧрд░реАрдм рд╡рд┐рдХрд▓реНрдкред

рддрдм рдореИрдВ рднреА рдПрдЧреНрд░реЗрд╕рд┐рд╡рд▓реА рд╕рдм рдХреБрдЫ (рд╢рд╛рдпрдж рд░реЗрдЦреАрдп рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

рд▓реЗрдХрд┐рди, рдЕрдЧрд░ рд╣рдо рд╡рд┐рд░реЛрдз рдХрд░рддреЗ рд╣реИ, рдореИрдВ рдпрд╣ 100% рд╕рд╣реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдХрд╣рд╛ рдХрд┐ рдХреНрдпрд╛ рдореМрдЬреВрдж рд╣реИ рдХреЗ рд░реВрдк рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреА рдЬрд░реВрд░рдд рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреНрдпрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдЖрдкрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдордд рд╣реВрдВ

@ ricardoV94 : рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ # 9211 рдкрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рднрд╛рд░рд┐рдд рдорд╛рддреНрд░рд╛рддреНрдордХ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП linear рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдкрд░ рдХреЛрдИ рд░рд╛рдп рд╣реИ? рд╡рд╣рд╛рдБ рдХреБрдЫ рд░реЗрдЦрд╛рдВрдХрди рдЙрд╕реА рд╢реИрд▓реА рдореЗрдВ рд╣реИрдВред

рд╢рд╛рдпрдж @ ricardoV94 рдЗрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдмрд╣реБрдд рдУрд░реНрдереЛрдЧреЛрдирд▓ рд╣реИред рд╡реЗрдЯреНрд╕ рд╢рд╛рдпрдж рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдЯрд╛рдЗрдк рд╡реЗрдЯ рд╣реИрдВ, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдкрд░реНрд╕реЗрдВрдЯрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡рдЬрд╝рди рдирд╣реАрдВ рд╣реИрдВ (рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреИрд╕реЗ), рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЖрдк рдЙрд╕ PR рдкрд░ josef-pkt рдХреЛ рдкрд┐рдВрдЧ рдХрд░рдиреЗ рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рддреНрд╡рд░рд┐рдд рдЯрд┐рдкреНрдкрдгреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ / рд╕рд╣реА рд╣реИред

рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕реЗ рдпрд╣рд╛рдБ рд╕реЗ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдПрдХ рдЧреИрд░-рдЕрдиреБрдХреВрд▓рд┐рдд рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ
Hyndman рдФрд░ Fan (1996) рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд 9 рдкреНрд░рддрд┐рд╢рдд / рдорд╛рддреНрд░рд╛рддреНрдордХ рдЖрдХрд▓рди рд╡рд┐рдзрд┐рдпрд╛рдВ рдФрд░ рдЖрд░ рдореЗрдВ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рд╡рд┐рдзрд┐ 1 рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ 'рд╢рд╛рд╕реНрддреНрд░реАрдп рдирд┐рдХрдЯрддрдо рд░реИрдВрдХ рд╡рд┐рдзрд┐' рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рд╡рд┐рдзрд┐ 7 рд╡рд░реНрддрдорд╛рди Numpy рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдкреНрд░рдХреНрд╖реЗрдк = 'рд░реИрдЦрд┐рдХ') рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред Numpy рдкреНрд░рдХреНрд╖реЗрдк рдХреЗ рд╢реЗрд╖ рддрд░реАрдХреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдФрд░ рд╡реЗ рд╡реИрд╕реЗ рднреА рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд▓рдЧрддреЗ рд╣реИрдВ)ред

def percentile(x, p, method=7):
    '''
    Compute the qth percentile of the data.

    Returns the qth percentile(s) of the array elements.

    Parameters
    ----------
    x : array_like
        Input array or object that can be converted to an array.
    p : float in range of [0,100] (or sequence of floats)
        Percentile to compute, which must be between 0 and 100 inclusive.
    method : integer in range of [1,9]
        This optional parameter specifies one of the nine sampling methods 
        discussed in Hyndman and Fan (1996). 

        Methods 1 to 3 are discontinuous:
        * Method 1: Inverse of empirical distribution function (oldest
        and most studied method).
        * Method 2: Similar to type 1 but with averaging at discontinuities.
        * Method 3: SAS definition: nearest even order statistic.

        Methods 4 to 9 are continuous and equivalent to a linear interpolation 
        between the points (pk,xk) where xk is the kth order statistic. 
        Specific expressions for pk are given below:
        * Method 4: pk=kn. Linear interpolation of the empirical cdf.
        * Method 5: pk=(kтИТ0.5)/n. Piecewise linear function where the knots 
        are the values midway through the steps of the empirical cdf 
        (Popular amongst hydrologists, used by Mathematica?).
        * Method 6: pk=k/(n+1), thus pk=E[F(xk)]. The sample space is divided
        in n+1 regions, each with probability of 1/(n+1) on average
        (Used by Minitab and SPSS).
        * Method 7: pk=(kтИТ1)/(nтИТ1), thus pk=mode[F(xk)]. The sample space
        is divided into n-1 regions (This is the default method of 
        Numpy, R, S, and MS Excell).
        * Method 8: pk=(kтИТ1/3)/(n+1/3), thus pkтЙИmedian[F(xk)]. The resulting
        estimates are approximately median-unbiased regardless of the
        distribution of x (Recommended by Hyndman and Fan (1996)).
        * Method 9: k=(kтИТ3/8)/(n+1/4), thus pkтЙИF[E(xk)]if x is normal (?).
        The resulting estimates are approximately unbiased for the expected 
        order statistics if x is normally distributed (Used for normal QQ plots).

        References:
        Hyndman, R. J. and Fan, Y. (1996) Sample quantiles in statistical packages, 
        American Statistician 50, 361--365.
        Schoonjans, F., De Bacquer, D., & Schmid, P. (2011). Estimation of population
        percentiles. Epidemiology (Cambridge, Mass.), 22(5), 750.

        '''

    method = method-1    
    x = np.asarray(x)
    x.sort()
    p = np.array(p)/100

    n = x.size  
    m = [0, 0, -0.5, 0, 0.5, p, 1-p, (p+1)/3, p/4+3/8][method]

    npm = n*p+m
    j = np.floor(npm).astype(np.int)
    g = npm-j

    # Discontinuous functions
    if method < 3:
        yg0 = [0, 0.5, 0][method]
        y = np.ones(p.size)
        if method < 2:
            y[g==0] = yg0
        else:
            y[(g==0) & (j%2 == 0)] = yg0      
    # Continuous functions
    else:
        y = g

    # Adjust indexes to work with Python
    j_ = j.copy()
    j[j<=0] = 1
    j[j > n] = n
    j_[j_ < 0] = 0
    j_[j_ >= n] = n-1 

    return (1-y)* x[j-1] + y*x[j_]

рдирд┐рд░рдВрддрд░ рддрд░реАрдХреЛрдВ рдХреЛ рднреА рдЗрд╕ рддрд░рд╣ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

def percentile_continuous(x, p, method=7):
    '''
    Compute the qth percentile of the data.

    Returns the qth percentile(s) of the array elements.

    Parameters
    ----------
    x : array_like
        Input array or object that can be converted to an array.
    p : float in range of [0,100] (or sequence of floats)
        Percentile to compute, which must be between 0 and 100 inclusive.
    method : integer in range of [4,9]
        This optional parameter specifies one of the 5 continuous sampling
        methods discussed in Hyndman and Fan (1996). 
        '''

    x = np.asarray(x)
    x.sort()
    p = np.asarray(p)/100
    n = x.size

    if method == 4:
        r = p * n
    elif method == 5:
        r = p * n + .5
    elif method == 6:
        r = p * (n+1)
    elif method == 7:
        r = p * (n-1) + 1
    elif method == 8:
        r = p * (n+1/3) + 1/3
    elif method == 9:
        r = p * (n+1/4) + 3/8

    index = np.floor(r).astype(np.int)

    # Adjust indexes to work with Python
    index_ = index.copy()
    index[index_ <= 0] = 1
    index[index_  > n] = n
    index_[index_ < 0] = 0
    index_[index_ >= n] = n-1

    i = x[index - 1]
    j = x[index_]

    return i + r%1* (j-i)

рдХреЛрдИ рдЗрд╕реЗ рдпрд╣рд╛рдБ рд╕реЗ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ? рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реВрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдорд╛рддреНрд░рд╛ рдХреЗ рд╡рд░реНрддрдорд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ R ред

R :

> quantile(c(15, 20, 35, 40, 50), probs=c(0.05, 0.3, 0.4, 0.5, 1))
  5%  30%  40%  50% 100% 
  16   23   29   35   50 
> quantile(c(3, 6, 7, 8, 8, 10, 13, 15, 16, 20), probs=c(0.25, 0.5, 0.75, 1))
  25%   50%   75%  100% 
 7.25  9.00 14.50 20.00
> quantile(c(3, 6, 7, 8, 8, 9, 10, 13, 15, 16, 20), probs=c(0.25, 0.5, 0.75, 1))
 25%  50%  75% 100% 
 7.5  9.0 14.0 20.0 

np.quantile :

>>> np.quantile([15, 20, 35, 40, 50], q=[0.05, 0.3, 0.4, 0.5, 1])
array([16., 23., 29., 35., 50.])
>>> np.quantile([3, 6, 7, 8, 8, 10, 13, 15, 16, 20], q=[0.25, 0.5, 0.75, 1])
array([ 7.25,  9.  , 14.5 , 20.  ])
>>> np.quantile([3, 6, 7, 8, 8, 9, 10, 13, 15, 16, 20], q=[0.25, 0.5, 0.75, 1])
array([ 7.5,  9. , 14. , 20. ])

рдмреЗрд╢рдХ рдЬреЛ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдореЗрдВ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
https://en.wikipedia.org/wiki/Percentile

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдЖрдк quantile https://www.rdocumentation.org/packages/stats/versions/3.5.0/topics/quantile рдХреЗ рд▓рд┐рдП R рдорджрдж рдкреГрд╖реНрда рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ
рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ R рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдзрд┐ (рдЯрд╛рдЗрдк 7) рд╕реАрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рдорд╛рди рд╕реЗрдЯ рдХрд░рддреА рд╣реИ рдХрд┐ np.quantile рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ: p_k = (k-1) / (n-1) , рдЬрд╣рд╛рдВ n рдирдореВрдирд╛ рдЖрдХрд╛рд░ рд╣реИ, рдФрд░ k = 1 рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдорд╛рди, рдЬрдмрдХрд┐ k = n рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рдРрд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рдорд╛рди рдХреНрд╡рд╛рдВрдЯрд╛рдЗрд▓ = 0 рдкрд░ рдкрд┐рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдХреНрд╡рд╛рдВрдЯрд╛рдЗрд▓ = 1 рдкрд░ рдкрд┐рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдореЗрдВ рдЯрд╛рдЗрдк 1 рдХреЗ рд╕рд╛рде 3 рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

> quantile(c(15, 20, 35, 40, 50), probs=c(0.05, 0.3, 0.4, 0.5, 1), type=1)
  5%  30%  40%  50% 100% 
  15   20   20   35   50 
> quantile(c(3, 6, 7, 8, 8, 10, 13, 15, 16, 20), probs=c(0.25, 0.5, 0.75, 1), type=1)
 25%  50%  75% 100% 
   7    8   15   20 
> quantile(c(3, 6, 7, 8, 8, 9, 10, 13, 15, 16, 20), probs=c(0.25, 0.5, 0.75, 1), type=1)
 25%  50%  75% 100% 
   7    9   15   20 

рдпрд╣ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╡рд╛рд▓ рдЙрдард╛рддрд╛ рд╣реИ:

1.) n.p.quantile рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреНрд░реИрдХ R.quantile рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреНрд░реИрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?
2.) рдЯрд╛рдЗрдк 1 рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд▓рд┐рдП np.quantile рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдЪреВрдВрдХрд┐ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╕реНрд╡рдпрдВ рднреА рд╕рд╣рдордд рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рд╢рддрддрд╛ рдХреА рдХреЛрдИ рдорд╛рдирдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рддрдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдзреНрд╡рдирд┐ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рди рддреЛ (1) рдпрд╛ (2) рдЙрддрдирд╛ рд╣реА рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рдореИрдВ (1) рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдпрдерди рдФрд░ рдЖрд░ рджреЛ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдбреЗрдЯрд╛ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рд╡реАрдЯреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ (2) рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИред

рд╣рд╛рдВ, R рдФрд░ Numpy рджреЛрдиреЛрдВ 7 рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЙрд╕реА рддрд░рд╣ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╡рд╛рд▓ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рддреЛ рдореИрдВ 9 рдкреНрд░рддрд┐рд╢рдд рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдореЙрдбреНрдпреВрд▓ рд░рдЦрддрд╛ рд╣реВрдВ, рдпрд╣рд╛рдВ ред рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ Numpy рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рд╕рд╛рднрд╛рд░ @ ricardoV94

рддреЛ, рд╕рд┐рд░реНрдл рдХрд┐рдХ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЖрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдкрд░ рдПрдХ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдЬрд┐рди 20 рд▓реЛрдЧреЛрдВ рдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреА, рдЙрдирдореЗрдВ рд╕реЗ 20 quantile рдореЗрдВ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдореЗрдВ рдорд╛рд╕реНрдЯрд░реНрд╕ рдХреЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдореЗрдВ рдкреАрдПрдЪрдбреА рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рд▓реЗрдХрд░ рд╣реИрдВред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рддреНрд░рд╛рддреНрдордХ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 9 рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдиреНрди рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬреЛ рдореВрд▓реНрдп рд╣реИ рд╡рд╣ scipy.stats.mstats.mquantiles рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ 9 рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ 6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдирд┐рд░рдВрддрд░ рд╡рд╛рд▓реЗ) рдФрд░

@albertcthomas рдЖрд╣, рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╣рдо рдЗрд╕ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдЦрд╛рдорд┐рдпреЛрдВ рдореЗрдВ рдЫрд┐рдкрд╛рдПрдВрдЧреЗред рдФрд░ рд╣рдореЗрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдЧреИрд░-рд╕рдиреНрдирд┐рд╣рд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ IIRC рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред

рд╣рд╛рдБ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЦрд╕реНрддрд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдЗрди рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ рдпрджрд┐ рд╡реЗ рд╕реНрдХрд┐рдкреА рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореИрдВ рд╕рдВрдЪрдпреА рд╡рд┐рддрд░рдг рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╡реНрдпреБрддреНрдХреНрд░рдо рд╕реЗ рдХреНрд╡рд╛рдВрдЯрд╛рдЗрд▓ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реЛрдЧрд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд┐рдзрд┐ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ :)ред

@albertcthomas рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рдВрдХреЗрдд / рдЬреНрдЮрд╛рди рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдХрд╣реЗрдВ! рд╣рдо рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдереЛрдбрд╝рд╛ рдлрдВрд╕ рдЧрдП рд╣реИрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреНрдпрд╛ рд╣реИред рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╣реБрдд рдХрд╖реНрдЯрдкреНрд░рдж рдореБрджреНрджрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд╣рдореЗрдВ рдХреБрдЫ рдЕрдЪреНрдЫреЗ рдбрд┐рдлреЙрд▓реНрдЯ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ 2-3 рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ (рдЧреИрд░-рд╕рдиреНрдирд┐рд╣рд┐рдд рд▓реЛрдЧреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реБрдзрд╛рд░рдирд╛)ред рдореИрдВ рдЕрдзрд┐рдХ рдпрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕рд╛рдорд╛рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдЕрдЧрд░ рд╣рдо рдХреБрдЫ "рд╡рд┐рд╢рд┐рд╖реНрдЯ / рдЕрдЪреНрдЫреЗ" рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХреЗрдВред

рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд▓реАрдирд┐рдпрд░ рдореЗрдердб (рдХрд░рдВрдЯ рдбрд┐рдлреЙрд▓реНрдЯ) рдФрд░ рдХрдореНрдпреБрд▓реЗрдЯрд┐рд╡ рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрд╢рди рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрд▓рдЯрд╛ (рдЬреЛ рдореИрдВ рдЗрд╕ рдЗрд╢реНрдпреВ рдХреЛ @albertcthomas рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ

рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдВрдЪрдпреА рд╡рд┐рддрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡реНрдпреБрддреНрдХреНрд░рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЖрдБрдХрдбрд╝реЛрдВ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рджрд┐рдП рдЧрдП рдирдореВрдиреЗ рд╕реЗ рдПрдХ рдорд╛рддреНрд░рд╛рддреНрдордХ рдХреЗ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЕрдиреБрдорд╛рдирдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@ ricardoV94 рдЖрдк рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рди рд╣реА рд╣рдпрдВрдбрдореИрди рдПрдВрдб рдлреИрди рдХреЗ рдкреЗрдкрд░ рдХреЛ?

рд╣рд╛рдВ, рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдХреЛрдИ рднреА рдЙрди рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛, рдФрд░ рдЙрдирдХреЗ рдирд╛рдо рд╣реИрдВ
рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рднреНрд░рд╛рдордХ рднреАред

рдЕрд▓реНрдмрд░реНрдЯ рдереЙрдорд╕ рд╕реВрдЪрдирд╛рдПрдВ @github.com escreveu no dia quarta, 2/01/2019
├а (s) 14:18:

рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓рд╛рдЧреВ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП
рд╣рдЯрд╛ рджрд┐рдпрд╛ред

@ ricardoV94 https://github.com/ricardoV94 рдХреНрдпрд╛ рдЖрдк рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд╣ рд░рд╣реЗ рд╣реИрдВ
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдореЗрдВ рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк рд╕рдВрджрд░реНрднрд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рди рд╣реА Hyndman рдФрд░
рдлреИрди рдХрд╛ рдкреЗрдкрд░?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/numpy/numpy/issues/10736#issuecomment-450861068 , рдпрд╛ рдореНрдпреВрдЯ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/AbpAmfUoJNk3YHOSHNeVN03Va5wtvkHQks5u_LGugaJpZM4SnVpE
ред

рдзрдиреНрдпрд╡рд╛рдж! Np.percentile рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЪрдпреА рд╡рд┐рддрд░рдг рдХреЗ рд╡реНрдпреБрддреНрдХреНрд░рдо рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП PR рдХреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЦреЛрд▓реЗрдВ? рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рддреЗ рд╕рдордп рдпрджрд┐ рд╣рдо рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд░рд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рд╡рд░реНрддрдорд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдХреИрд╕реЗ рдЦрд╕реНрддрд╛рд╣рд╛рд▓ рд╕рдВрднрд╛рд▓рд╛ рд╣реИ?

рдпрд╣рд╛рдБ рдХреБрдЫ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА - рдкрд╛рдпрдерди 3.8 рдиреЗ statistics.quantiles рдЬреЛрдбрд╝рд╛ - рд╣рдореЗрдВ np.quantile рд╕рдорддреБрд▓реНрдп рдореЛрдб рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣рд╛рдБ рдЖрдЧреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╢рд╛рдпрдж method kwarg рдХрд╛ рд╣реИ, рдЬреЛ statistics рдПрдХ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ 0-2 рдФрд░ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИ (рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореВрд▓ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдЕрдЬрдЧрд░ рдкрд░ рдкрд┐рдВрдЧ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ ред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЪреВрдХ рд╣рдорд╛рд░реЗ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдЬреЛ рдХрд┐ рдЕрдЧрд░ рд╡реЗ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ (рдФрд░ рд╡реИрд╕реЗ рднреА рдЬреЛ рд╣рдорд╛рд░реЗ рдорди рдореЗрдВ рдерд╛)ред рд╕рд╛рде рд╣реА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП 0-2 рдирдП "рддрд░реАрдХреЗ" рдареАрдХ рд╣реЛрдВрдЧреЗред рдХрд┐рд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдЬрдЧрд░ рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╛рдореЛрдВ рдкрд░ рдкрд┐рдВрдЧ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ ...

рдкреАрдЖрд░рдПрд╕ рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рдХрд░рддреЗ рд╣реИрдВ, рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЖрдЧреЗ рдмрдврд╝реЗ, рд▓реЗрдХрд┐рди рдореИрдВ рддрддреНрдХрд╛рд▓ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред

@ eric-wieser рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдВрдмрдВрдзрд┐рдд рдкреАрдЖрд░ рдХреЗ рдХреБрдЫ рдЬреЛрдбрд╝реЗ рдмрдХрд╛рдпрд╛ рд╣реИрдВ, рдХреНрдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрддрд╛ рд╣реИ?

рдореИрдВ рдЗрд╕реЗ 1.19 рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрд╡рд░реЛрдзрдХ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ 1.18 рдХреЗ рд▓рд┐рдП рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ :)

@charris : рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреМрди рд╕реЗ

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдЕрднреА рддрдХ рдХреЛрдИ рдмрд╛рдд рд╣реБрдИ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

MorBilly picture MorBilly  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

marcocaccin picture marcocaccin  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

navytux picture navytux  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thouis picture thouis  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dmvianna picture dmvianna  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ