ããã¯ãã§ã«ååšãããšæããŸããïŒ ãŠã£ãããã£ã¢ã®äŸã®äœ¿çšïŒ
>>> 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]
ãªãã¹ããšã
3çªç®ã®äŸã§ãåæ§ã«å€±æããŸã
æãè¿ãã®ã¯ãæãè¿ããã®ããã«èãããŸããïŒ ãã ããå¢çãã©ã®ããã«æ£ç¢ºã«æ©èœãããã«ã€ããŠã¯ãåžžã«å¥ã®ãã€ã³ãããããŸãã
ç·šéïŒã€ãŸããããŒã¿ãã€ã³ããŸãã¯ããŒã¿ãã€ã³ãã®åã§ã0ãš100ã¯æ£ç¢ºã«ã©ãã«ãããšèŠãªãããŸããïŒ ïŒã€ãŸããIIRCã§ããããšã«ããããã«ã¯åä»ãªè€éãããããããããŸãïŒ
èªã¿ãããªãã®ã§ãããéãã¯Cãã©ã¡ãŒã¿ãããã«äžã«ããå¯èœæ§ãããã®ã§ããããç¥ã£ãŠãã人ããããè¿œå ãããå Žåã¯...
ççŽã«èšã£ãŠãCãã©ã¡ãŒã¿ãŒãè¿œå ããããšã¯æ¬åœã«è¯ãããšã ãšæããŸãã ããããã»ãšãã©ã®å Žåãããåªããããã¥ã¡ã³ããããã°ããã®ã§ããããã®ãããªããšãæ¬åœã«ç¥ã£ãŠãã人ãå¿ èŠã§ãã
ãããCãã©ã¡ãŒã¿ãšé¢ä¿ããããã©ããã¯ããããŸãããããããéžæãããªãã·ã§ã³ãæãŸããå¯èœæ§ãããããšã«åæããŸãã
å¶ç¶ã«ãã®åé¡ãåŒãèµ·ãããå¥ã®ã¹ã¬ãããèŠã€ããŸããïŒ2016幎12æïŒã ç§ãæ¢ããŠããã¢ã«ãŽãªãºã ïŒããã³ãŠã£ãããã£ã¢ãæãè¿ãã©ã³ã¯ãšåŒãã§ãããã®ïŒã¯ãHyndman-FanïŒHïŒFïŒã«ãããã®äžè¬çã«åŒçšãããŠãã
çŽèŠ³çã«åæ§ã®ãã®ãèšç®ããŠããããã«èŠããnumpyã«ãã£ãŠæäŸãããä»ã®ãªãã·ã§ã³ïŒã€ãŸãããããäœããããæãè¿ããïŒã«å¯ŸããŠã©ã®ããã«èŠãããã次ã«ç€ºããŸãã
ç§ã«ã¯ãäžèŠãããšããCãã©ã¡ãŒã¿ãšãŸã£ããåãããã«èŠããŸãããæãè¿ãæ²ç·ã¯HïŒFæ²ç·ãããåŒã䌞ã°ãããŠããŸããããã¯ãnumpyã1ã䜿çšããæããã«HïŒFã0ã䜿çšããããã§ãã
蚌æ ãå¿
èŠãªå Žåã åãå€ã1000åç¹°ãè¿ããŠå
šäœãç¹°ãè¿ããŸããåæãããšæããŸãã
ç·šéïŒãŸãã¯ããã§ãªããããããŸããããããã«ã€ããŠæ¬åœã«èããå¿èåãæéããããŸããã ããããããã§ããŠã£ãããã£ã¢ãèšåããŠããCãã©ã¡ãŒã¿ã ãšæãã®ã§ãééã£ãŠããããšã蚌æããŠãã ãã:)
ãã®ãããªã°ã©ãã¯ãããŒã»ã³ã¿ã€ã«ããã¥ã¡ã³ããžã®çŽ æŽãããè¿œå ã«ãªããŸã
ç·šéïŒã§ããã°äžé£ç¶æ§ã®ééæ§ã瀺ããã®
èªè ãžã®https://numpy.org/devdocs/reference/generated/numpy.percentile.htmlã®äžéšã«ãã
@ eric-wieserãã®ã°ã©ããäœæããŠãããŸããŸããã ä»æ¥ã¯åŸã§äœããæã£ãŠæ»ã£ãŠããŸãããããã«æçš¿ããå¿ èŠããããŸããïŒ
@sebergããã§æ£çŽã«èšããšãCãã©ã¡ãŒã¿ã«åºã¥ããŠè£éãã©ã®ããã«èšç®ãããŠããã®ãããããŸããã é¢ä¿ããªããšæãã®ã¯ãCãã©ã¡ãŒã¿ã¯ç·åœ¢è£éã®ã»ã¯ã·ã§ã³ïŒãŠã£ãããã£ã¢ïŒã§ã®ã¿èª¬æãããŠããããŠã£ãããã£ã¢ãšHyndmandïŒFanã®è«æã®äž¡æ¹ã§ãè£éã®ã»ã¯ã·ã§ã³ãšã¯å¥ã®ã»ã¯ã·ã§ã³ã§èŠæ±ããã¢ã«ãŽãªãºã ã«ã€ããŠèª¬æããŠããŸãã
èå³ã®ããã¢ã«ãŽãªãºã ãšåžžã«åãçµæãããããè£éãã©ã¡ãŒã¿ããããã©ããã¯ããããŸããã
ãããšããŠããããã¯ããã«å°éããããã«äœ¿çšãããæ¹æ³ã§ããå¿ èŠããããŸããïŒ ããŒã»ã³ã¿ã€ã«ã®æãäžè¬çãªå®çŸ©ãååŸããããã«ãå¥åŠãªããã©ã¡ãŒã¿ãå€æŽããããšã¯ããããå®è£ ããããã®æè¯ã®æ¹æ³ã§ã¯ãªãããã§ãã
@ ricardoV94ãããããŸããããããã©ã«ããã©ããªã«æªããŠããããã©ã«ããå€æŽããããšã¯ã§ããŸããã method = "HïŒK"ã®ãããªãã®ãå ¬éããŠãäž¡æ¹ã®ãã©ã¡ãŒã¿ãŒãäžåºŠã«ãªãŒããŒã©ã€ãããããšãã§ããŸãã
Cãã©ã¡ãŒã¿ãŒã¯ãããŒã¿ãã€ã³ãïŒããŒã¿ãã€ã³ãäžãã©ãããªã©ïŒã«å¯ŸããŠ0ïŒ
ãš100ïŒ
ãå®çŸ©ããå Žæã§ãã ãŠã£ãããã£ã¢ã®ãã©ã¡ãŒã¿ãŒC
ãšããŠãããã¯è£éå°çšãããããŸããããåãåé¡ãããã§ã®éããåŒãèµ·ãããŠãããšç¢ºä¿¡ããŠããŸãã C
ã¯ãã¡ããçãããã§ãããåºæåè©ã¯range = 'min-max'ãrange = 'extrapolated'ã®ãããªãã®ããããããå®å
šã«ç°ãªããã®ãããããŸããã ç§ãèšã£ãããã«ãå€ãã®ããŒã¿ãã€ã³ãïŒããããå°ããªãã€ãºïŒã§ãããããããçŽããŸããç¯å²ã®å®çŸ©ããããã«ãããªãã®ã§ãããããåæããã®ãããããšæããŸãã
@sebergç§ã¯method = "HïŒK"ãŸãã¯ããããmethod = "classic"ã§å€§äžå€«ã§ãã Interpolation = "none"ãæå³ããããŸãã
ããã¥ã¡ã³ãã«ç»åãå«ããããã®ã¡ã«ããºã ãäœã§ãããããŸãã¯ãããè¡ãããã®åäŸããããã©ããã¯ããããŸããã
ããã¥ã¡ã³ãå ã§matplotlibã³ãŒããå®è¡ã§ããããšã¯ããã£ãŠããŸããããã¯ãä»ã®å Žæã§å®è¡ããæ¹æ³ã§ããããã«ãããçŸå®ãšã®åæãç¶æãããŸãã
ããŠããã®å Žåã®æè¯ã®ã³ãŒãã€ã¡ãŒãžãèããŸãã
matplotlibã«ã¯ãã®ããã®çµã¿èŸŒã¿é¢æ°ïŒ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()
interpolation = 'linear'
ã¯éåžžã®é段ç¶ã§ã¯ãªãç·ã§ããå¿
èŠããããšæããŸããããã以å€ã¯èŠæ ããããŸãã ãããããã¥ã¡ã³ãã«è¿œå ããPRãäœæã§ããŸããïŒ
å®éã step
ã¯äžè¬çã«èª€è§£ãæãã¢ãŒãã£ãã¡ã¯ããåŒãèµ·ãããŠããã®ã§ãç§ã¯ãããé¿ããããšæããŸãã linspace(0, 100, 60)
ã¯ãããæ£ç¢ºãªäžé座æšãçæããŸã
PRã®äœãæ¹ãããããŸããã
ææ¡ãããå€æŽãè¿œå ãŸãã¯è°è«ããŠãã¢ã«ãŠã³ãã§èªç±ã«ãããè¡ã£ãŠãã ããã
C
ããã®ãããªãã®ã§å€æŽã§ãããšæããŸãïŒäœãã§ãã¹ãããŠãã ããïŒã ããŒã»ã³ã¿ã€ã«ã§é¢æ°ãåŒã³åºããŠããããããnumpyããŒãžã§ã³ã«ãã©ã°ã€ã³ããŸãïŒ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
ãããŠåºæ¥äžããããæãè¿ããã§ããªãã¯ããªãã®ãHïŒFããæã«å ¥ããç·åœ¢ã§ããªãã¯ãŠã£ãããã£ã¢ãããããããæã«å ¥ããã§ãããã ïŒç§ãäœãééã£ãããšãããŠããéãç§ã¯ãããæ£ãããããšç¢ºä¿¡ããŠããŸãïŒã
ç§ãèšã£ãããã«ãéãã¯ãæåŸã®ãã€ã³ãã«å¯ŸããŠ0ã100ïŒåçã«ïŒã®ããŒã¿ãã€ã³ããé 眮ããå Žæã§ãã C = 1ã®å ŽåãminïŒdataïŒã0ããŒã»ã³ã¿ã€ã«ãªã©ã«èšå®ããŸãããäœãããçã«ããªã£ãŠããã®ããã«ã€ããŠã¯ããããŸããããããããäžè¬çãªèŠæ¹ãå°ãéèŠã§ãã 1ãå«ã¿ã0ãé€ããšããååã¯ãç§ãæšæž¬ããå°ãæå³ããããŸãïŒããŒã»ã³ã¿ã€ã«ã®åèšç¯å²ã«ã€ããŠèãããšããæä»çãªå¯èœãªç¯å²ã¯ããŒã¿ç¯å²å€ã§ããããïŒã ãã ããC = 1/2ããã®æå³ã§æä»çã§ãã
ç§ã¯Cãã©ã¡ãŒã¿ãè¿œå ããã€ããã§ãããå¯èœã§ããã°èª°ãã«ããããããååãèããŠããããããšæããŸãã ãŸããæè¯ã®ããã©ã«ããæããã«ããããã«ãã¡ãœããããªã©ã®ãããªãã®ãæ°ã«ããŸããïŒè£é+ Cã®çµã¿åããïŒã ãŸãã¯ãåºæ¬çã«ãã»ãšãã©ã®çµã¿åããã¯äœ¿çšãããã圹ã«ç«ããªããšå€æããŸãã
çµå±ã®ãšãããç§ã®åé¡ã¯æ¬¡ã®ãšããã§ããçµ±èšåŠè ã«ãã©ã®ã¡ãœãããã³ã³ã»ã³ãµã¹ãæã£ãŠããããæããŠãããããïŒRã«ã¯ããã€ãã®ãã®ããããŸãããæåŸã«èª°ããããã«æ¥ããšãã¯ãR docãªã©ã®éå»ã®ã³ããŒã§ãããèšããŸã§ããªããäžè¬ã®èŽè¡ã«ãšã£ãŠã¯åœ¹ã«ç«ããªãã£ããè«æãåŒçšããã»ãããã£ãšåœ¹ã«ç«ã£ãã ããïŒã
ãã®HïŒFããŒããŒã¯èªã¿ãããªãã®ã§ããïŒæ£çŽãªãšãããããŸãèŠãç®ãè¯ããããŸããïŒããµããŒãã®èŠ³ç¹ãããã芧ããã ãããšæããŸãã ãã€ãããæãè¿ããïŒãŸãã¯ä»ã®ïŒããŒãžã§ã³ã¯ãåããŒã¿ãã€ã³ãã«å¯ŸããŠïŒããŒã»ã³ã¿ã€ã«ã§ïŒåäžã®ãµããŒããæã£ãŠããŸãããHïŒFã¯ãæãè¿ãããåçã«ãµããŒãããŠãããããããäžéç¹ã«ã€ããŠã¯C = 1/2ã«ãªãã§ãããã
ç§ã¯ç¹°ãè¿ããŸããããã®ãããªãµããŒãåŒæ°ïŒnumpyãªã©ã®C = 1ã«å¯ŸããŠïŒãå®éã«æ¬åœã®çç±ã§ãããã©ããã¯ããããŸããã
ç·šéïŒmidpointã¯ãnumpyã§ïŒãã€ã³ãèªäœã§ã¯ãªããããŒã¿ãã€ã³ãéã®é åã«å¯ŸããŠïŒåçã®ãµããŒããæã£ãŠããããããC = 1ãã䜿çšããŸãã
@sebergããã¯ç§ãšäžç·ã«åäœããªãããã§ãã ãããæ©èœããŠããããšã瀺ãã³ãŒããæçš¿ã§ããŸããïŒ
ããŠãç§ã¯ããã«ãããã®ã³ãŒãã§ç¬Šå·ãééããã®ã§ãããã¯å察ã§ããïŒC = 0ãC = 1ã§ã¯ãªãno-opïŒïŒ
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->ã€ã³ããã¯ã¹ãšãªãæŽæ°ã®å Žåã¯ãäžéãã€ã³ããã¯ã¹ãšããŠäœ¿çšããŸãã
ããã«ãããããããCåŒæ°ã¯æåŸ ã©ããã«æ©èœããŠããããã«èŠããã®ã§ãè£éã«äœ¿çšãããå Žåã¯å®è£ ã§ããŸãã ãŠã£ãããã£ã¢ã®ãã®ãšããŠæ©èœããmethod = 'classic'ãŸãã¯interpolation = 'none'ããŸã å¿ èŠã§ãã
ãããã°ã®å Žåãããã¯å€å žçãªæ¹æ³ã®ç§ã®éãénumpyå®è£ ã§ãïŒ
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)]
ãããŠãã£ãšnumpythonicãªãã®ïŒ
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ã§ã®ç§ã®æšæž¬ã¯ééã£ãŠããŠãããªãã¯
C = 0.5ã
ç§ã®ãã€ã³ãã¯ãéããã©ãããæ¥ãã®ããèšãããšã§ããïŒãCãã©ã¡ãŒã¿ã
IMOãããããå€ããå«ãæ£åœãªçç±ããããŸãã
çµã¿åããïŒã ããã¯ããªãã«/åé¿çãå®è¡ããããšã§ã¯ãããŸããã§ããã
ãã¯ã©ã·ãã¯ããªæ¹æ³ã«ã€ããŠã¯ãççŽã«èšã£ãŠãã¯ã©ã·ãã¯ãªãã®ã¯ããŸãæ°ã«ããŸããã
ããã¯ãã§ãã ç§ãç¥ã£ãŠãããã¹ãŠã®äººã«ãšã£ãŠãå€å
žãšã¯ãããªãã®æ°ããæå³ããŸã
人ã
ã¯ããã䜿çšããŸããã
ãœãªã¥ãŒã·ã§ã³ã«é¢ããŠã¯ãç§ã®ç¬¬äžå°è±¡ã¯ãã¯ã©ã·ãã¯ããäœãã§ã
ååãååãäžæ確ãªå¥ã®çŽãããããªãã·ã§ã³ãè¿œå ããã ãã§ãã ç§ã¯é¡ããŸã
ãã®è°è«ã¯å®éã«ãã¹ãŠãäœãæ¹åã«é²ãããšãã§ãããš
ã¯ãªãŒã³ã§ééçãªãŠãŒã¶ãŒãå©çšã§ããåªããïŒå
±éã®ïŒãªãã·ã§ã³
ä»æ¹ã 人ã
ãå®éã«ç解ã§ããæ¹æ³ã§æåã§ãã
ãã1ã€ã¡ãœãããè¿œå ã§ããŸãããççŽã«èšã£ãŠãç§ã¯ååãã奜ãã§ã¯ãããŸããã ç§ãã¡ã
æåŸã«è¿œå ãããã¡ãœããïŒæ£ç¢ºã«äœãå€æŽããããã¯èŠããŠããŸããïŒI
ãã§ã«é
ããŠã誰ããé£ã³äžãã£ãŠç解ããããšãæãã§ãã
ç§ãã¡ãæã£ãŠããã¹ããã®ã èšããŸã§ããªããããã¯å®éã«ã¯èµ·ãããŸããã§ããã ãããŠä»
ç§ã¯éããææãããããã©ã®ããã«é©åããããèŠãããšããŠããŸã
ç§ãã¡ãçŸåšæã£ãŠãããã®ã§ã
ã ãããç§ã®å°è±¡ã¯ïŒäžžããšæ£ç¢ºãªåé¡ã®å¯èœæ§ããã
ããŒã»ã³ã¿ã€ã«äžèŽïŒïŒããããããŸãã«ãïŒå€ãã®ãè£éããªãã·ã§ã³ããããŸã
ãCãã©ã¡ãŒã¿ããŸãã¯ãããåŒã³åºããããã®ãå¿
èŠã«ãªããŸã
ã»ãšãã©äœã§ãã§ããã
ãããŠã誰ããç§ã«ãã¹ãŠã®æ¹æ³ãæããŠããããæ¬åœã«å¬ããã§ã
ïŒäžè¬çïŒããã«ãããæ¹æ³ãã¯ãããã®ã«ããŽãªãŒã«åé¡ãããŸããããã¯
C = 0,0.5,1以äžãååšãããããããããã®å€åŽã«ããååšããŸã
ãªãã·ã§ã³....
ãã¶ãç§ã¯ééã£ãéãé²ãã§ããŸããããMethod1ããè¿œå ããŠ
äžæçãªååã§ãå®éã«ã¯èª°ã«ãããããŸããã
ä»ã®æ¹æ³ã¯ç§ã«ã¯åœ¹ã«ç«ããªãããã§ãïŒ
ããŸããŸãMethod1ããšããååããã§ã«ç¥ã£ãŠããŠããããæ¢ããŠããŸãã ãããŠ
ãã¯ã©ã·ãã¯ããæçœãªãã®ã§ãããšã¯èšããªãã§ãã ããã
ããã«ããå®è£
ã®ã°ãã€ãã倧ããããŸãã
å¥ã®æ¹æ³ã¯ãéæšå¥šã®ãè£éãã§ããããªã¹ããçšæããããšã§ãã
ã¡ãœããã®æ°ãããç·åœ¢è£éããã»ã®ãããã»ã©è¯ããããŸããã
ããã¯ã¹ãããè¡åãªã©ã§ã¯ãªããšèšãããšâŠãããŠç§ãã¡ããã®ããã«è¡ãã°ã
ç§ã¯ãŸã åççãªæŠèŠã欲ããã§ãã
ããªãã¯ãããããå¿
èŠã¯ãããŸããããæ°ããã¡ãœãããè¿œå ãããå Žåã¯ã
ãããè¿œå ããæ¹æ³ã¯ã誰ããããã«æ··ä¹±ããããšã¯ãªããæ確ã§ãïŒ
ããã§ã¯èŠçŽããŸãããïŒ
1ïŒçŸåšãnumpyãæäŸãã䟿å©ãªæ¹æ³ã¯1ã€ã ãã§ããinpolation= 'linear'ã§ãããä»ã®æ¹æ³ã¯ãå®éã«ã¯èª°ã䜿çšããŠããªãããã«èŠããããã®åšãã®å°ããªããªãšãŒã·ã§ã³ã§ãã ä»ã®ããã±ãŒãžã«ã¯ãããå€ãã®é¢é£ãªãã·ã§ã³ããããŸãã
2ïŒC = 0ãŸãã¯C = 0.5ã®ä»ã®å€ãè¿œå ããããšã¯ãç§ã«ã¯çã«ããªã£ãŠããŸãã ãã¹ãŠã®å æ¿æ³ã¯ãããããšçµã¿åãããŠæ©èœããŸããããããã䜿çšãããããšã¯ãªãã§ãããã
3ïŒè£éæ³ãšCåŒæ°ã®çµã¿åããã®ããããããå€å žçãªæ¹æ³ãè€è£œããããšã«æåããå ŽåïŒãªãã¡ã¬ã³ã¹ãšãŠã£ãããã£ã¢ãããã³ç§ã®å人çãªçµéšã§ã¯ããããæãäžè¬çã«æããããŠããæ¹æ³ã§ããããšã«åæããŸãïŒãç§ã¯ããã«æºè¶³ããŠããŸãã ãã®ãããªã³ã³ãã¯å€å žçãªéè£éæ³ãçã¿åºããšããã¥ã¡ã³ãã§è¿°ã¹ãããšãã§ããŸãã æµ®åå°æ°ç¹ç²ŸåºŠã®åé¡ã ããåå ãã©ããã¯ããããŸããããããçµ±åãããæ¹æ³ã§ããã«åãçµãããã®åªåã«æè¬ããŸãã
4ïŒã©ã®ã³ã³ãã§ãåãçµæãåŸãããªãå Žåã¯ãå¥ã®æ¹æ³ãçã«ããªã£ãŠãããšæããŸãã ããããinterpolation = 'none'ãšåŒã°ããæ¹ããæ··ä¹±ãå°ãªããªããŸãã
èŠçŽãããšãnumpy.percentileã®çŸåšã®ãªãã·ã§ã³ã¯ãããªãæ··ä¹±ããå¶éãããŠããããã«èŠããŸãã äžèšã®è«æã¯ãä»ã®æçšãªæ¹æ³ã®æŠèŠã瀺ããŠããŸãã ãŠã£ãããã£ã¢ã®ããŒãžãšäžç·ã«ãnumpy.percentileãžã®ããç¶²çŸ çã§äŸ¿å©ãªãªãã·ã§ã³ã®ã»ãããèšèšããããã®åºçºç¹ãšããŠæ©èœããå¯èœæ§ããããŸãã ããŸãããã°ã誰ãããã®ã¿ã¹ã¯ã«åãçµã¿ãããšæã£ãŠããŸãã
çŸåšã®ãæãè¿ãããšããããšã¯ãããå Žåã«ã¯æå³ããããŸããïŒ ééæ³ïŒãCãïŒãŸãã¯ç·åœ¢è£é/åæ°ã®ãã®ã«ããã»ã©å€§ããªéãããããããã®ãããã°ãéåæ°è¿äŒŒã§èª°ããããããªãã£ãããšã«é©ããããããããŸããã å®æ°ãµããŒãã¯ããã»ã©éèŠã§ãããå æ¿æ³ã®CDFéåŒæ°ããã³ãããçç±ã¯ãããŸããïŒ
ã³ã³ãã¯ãç解ã§ããäžè¬çã«äœ¿çšãããŠãããã®ãèŠã€ãããããã®ã§ãªãéã圹ã«ç«ããªãã®ã§ãç§ã¯ãããçã£ãŠããŸãã è£éã«ã€ããŠã¯ãå€ãã®ãªãã·ã§ã³ãååšããããã§ãïŒããšãã°ãhttpïŒ//mathworld.wolfram.com/Quantile.html Q4ããQ9ãRã®ããã¥ã¡ã³ãã¯å®è³ªçã«åãã ãšæããŸãããå®å šã§ã¯ãªããšæããŸããããšãã°ãmatlab ...ïŒãããããå®éã«ãã¹ãŠæå³ããããã©ããã¯ããããŸãã;ïŒã
æ£ç¢ºã«å®çŸ©ããããã€ã³ãéã§äœããããã瀺ããè£éããã€ã³ãã§ãããå°ãªããšããç·åœ¢è£éãã䜿çšããå Žåããããã®ãã€ã³ããé 眮ããæ¹æ³ã¯ãããããããŸãïŒå¥åŠãªããšã«ãããããããŸãïŒã®ã§ãããã«è¿œå ããã®ã¯æªãã¢ãããŒãã®ããã§ãã ããèãããïŒãããŠç²Ÿç¥çã«ïŒinterpolation = "nearest"ã®ãæãè¿ãã©ã³ã¯ããå¿ èŠã§ããããæ£ç¢ºãªãããããäœçœ®ãã®éžæã¯ãéæšæºãã®ããã«æããããããæšæž¬ããããšã¯äžå¯èœã§ããæªãéžæã
次ã«ããã¹ãŠãç©æ¥µçã«éæšå¥šã«ããããšãã§ããŸãïŒããããç·åœ¢ãé€ãïŒã
ããããå»æ¢ããå Žåã¯ã100ïŒ æ£ããããããšæããŸãããã®ããã«ã¯ãäœãååšããã®ããäœãååšããã®ããäœãæããã«ååšããªãã®ãã«ã€ããŠãããå°ãæ確ã«ããå¿ èŠããããŸãã
å®å šã«ããªããšåæããŸã
@ ricardoV94 ïŒïŒ9211ã§ææ¡ãããå éåäœæ°ã®å Žåã®linear
ã®å®çŸ©ã«ã€ããŠæèŠã¯ãããŸããïŒ åãã¹ã¿ã€ã«ã®ã°ã©ããããã€ããããŸãã
ãã¶ã@ ricardoV94ã¯ããã«ã€ããŠã³ã¡ã³ãããããšãã§ããŸãïŒããã¯ã¯ãŒã«ã§ãããïŒããåé¡ã¯ããªãçŽäº€ããŠãããšæããŸãã ããŒã»ã³ã¿ã€ã«ã«åççã«å®çŸ©ãããä»ã®éã¿ããªããšä»®å®ãããšïŒæ¹æ³ã¯ããããŸããïŒãéã¿ã¯ããããåçŽãªåšæ³¢æ°ã¿ã€ãã®éã¿ã§ããããããå®è£ ãããšãã«ãããŸããã¯ãªãã¯ãã§ããã確ãã«ã¯ããããŸããã
ãŸãããã®PRã§josef-pktã«pingãå®è¡ããŠããããè¯ãã¢ã€ãã¢/æ£ãããšæããã©ããã«ã€ããŠã圌ãç°¡åã«ã³ã¡ã³ãããŠãããããšãæåŸ ããããšãã§ããŸãã
誰ãããããããããååŸãããå Žåã¯ãç§ã¯ãèšç®ããæé©åãããŠããªãé¢æ°ãæžããŸãã
Hyndman and FanïŒ1996ïŒã«ãã£ãŠèšè¿°ããã Rã§ã䜿çšãããŠãã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)
誰ãããããããããåãããã§ããïŒ ç§ã¯ããããè³æ ŒããããŸããã
ååã®æçš¿ã§è¿°ã¹ãããã«ãnumpyã®çŸåšã®åäœæ°ã®ããã©ã«ãå®è£
ã¯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
å®éãåäœæ°ã®Rãã«ãããŒãžã«ã¢ã¯ã»ã¹ãããšãhttpsïŒ//www.rdocumentation.org/packages/stats/versions/3.5.0/topics/quantile
Rã®ããã©ã«ãã¡ãœããïŒã¿ã€ã7ïŒã¯ã np.quantile
èšå®ããã®ãšåãå¢çæ¡ä»¶ãèšå®ããããšãããããŸãã p_k = (k-1) / (n-1)
ãããã§ãnã¯ãµã³ãã«ãµã€ãºãk = 1ã¯æå°ã瀺ããŸããå€ãk = nãæ倧ã ã€ãŸãããœãŒããããé
åã®æå°å€ã¯åäœ= 0ã«åºå®ãããæ倧å€ã¯åäœ= 1ã«åºå®ãããŸãã
ãŸããåã®æçš¿ã§è¿°ã¹ãããã«ããŠã£ãããã£ã¢ã®3ã€ã®äŸãã¿ã€ã1ã§åçŸã§ããŸãã
> 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.ïŒnp.quantileã®ããã©ã«ãã¯R.quantileã®ããã©ã«ãã远跡ããå¿
èŠããããŸããïŒ
2.ïŒnp.quantileã¯ã¿ã€ã1ã¢ã«ãŽãªãºã ã«åãæ¿ããå¿
èŠããããŸããïŒ
ãŠã£ãããã£ã¢èªäœã§ããããŒã»ã³ã¿ã€ã«ã®æšæºçãªå®çŸ©ããªãããšã«åæããŠããã®ã§ãã¢ã«ãŽãªãºã ãé©åã§ããããŠãŒã¶ãŒããããã©ã®ããã«æ©èœããããç¥ã£ãŠããéããïŒ1ïŒãïŒ2ïŒãããã»ã©éèŠã§ã¯ãªããšæããŸãã PythonãšRã¯äžã®äžã§æã人æ°ã®ããããŒã¿åæãã©ãããã©ãŒã ã®2ã€ã§ããããäºãã粟æ»ã§ããã°ããã®ã§ãç§ã¯ïŒ1ïŒã«ãã£ãšè³æã§ãã ãããèãããšãïŒ2ïŒã¯äžèŠã ãšæããŸãã
ã¯ããRãšNumpyã¯ã©ã¡ããããã©ã«ãã§ã¡ãœãã7ã«èšå®ãããŠããããããã®ãŸãŸã«ããŠããå¿ èŠããããŸãã åé¡ã¯ãä»ã®ã¡ãœãããè¿œå ãããã©ããã§ãã
誰ããèå³ãæã£ãŠãããªããç§ã¯ããã«ã9ããŒã»ã³ã¿ã€ã«ã¡ãœãããåããç¬ç«ããã¢ãžã¥ãŒã«ãèšçœ®ã
ããããšã@ ricardoV94 ã
ããã§ãããã¯ã®ããã ãã«ãç§ã¯RãŠãŒã¶ãŒã®ä»äºã§äžè«èª¿æ»ãããŸããã åçãã20人ã®ãã¡ã20人ã¯quantile
ã®ããã©ã«ãã®æ¹æ³ã®ã¿ã䜿çšããŠããŸãã 圌ãã¯å
¬è¡è¡çã®ä¿®å£«èª²çšã®åŠçããçµ±èšåŠã®å士課çšã®ç 究è
ãŸã§å€å²ã«ããããŸãã
å人çã«ã¯ãåäœæ°ãèšç®ãã9ã€ã®ç°ãªãæ¹æ³ããµããŒãããããã«numpyãåªåãã䟡å€ããããã©ããã¯ããããŸããã ã»ãšãã©ã®ãŠãŒã¶ãŒã¯ããã©ã«ãã䜿çšãããšæããŸãã
䟡å€ãããã®ã¯ã9ã€ã®ã¡ãœããã®ãã¡6ã€ïŒé£ç¶ã¡ãœããïŒããµããŒãããscipy.stats.mstats.mquantilesé¢æ°ã§ãããããã¥ã¡ã³ãã«ã¯Rå®è£ ãšã®ãªã³ã¯ãéåžžã«æ確ã«èšèŒãããŠããŸãã
@albertcthomasãããããã¯ç¥ã£ãŠãããšè¯ãããšã§ãã ãšã¯ãããçæ³çã«ã¯ããã®è€éããå°ãã ãé ããŠãããšæããŸãã ãããŠãã»ãšãã©ã®å Žåãéé£æ¥ããŒãžã§ã³IIRCãä¿®æ£ããå¿ èŠããããŸãã ãããã¯åºæ¬çã«æãäžè¬çãªæ¹æ³ãæäŸããªãããã§ãã
ã¯ãã確ãã«ãscipy statsã¢ãžã¥ãŒã«ã«å®è£ ãããŠããå Žåãnumpyã¯å¿ ããããããã®ã¡ãœããããµããŒãããå¿ èŠã¯ãããŸããã
å人çã«ã¯ã环ç©ååžé¢æ°ã®äžè¬éè¡åããåäœæ°ãèšç®ããæ¹æ³ãå¿ èŠã§ãã ãã®ãããªæ¹æ³ãå©çšã§ããªããšããäºå®ã¯ç§ããã®åé¡ã«å°ããŸã:)ã
@albertcthomasããã«ã€ããŠã®ãã³ã/ç¥èãããå Žåã¯ãããèšã£ãŠãã ããïŒ å®éã«é©åãªããã©ã«ããæ確ã§ãªããããå°ãè¡ãè©°ãŸã£ãŠããŸãã ãããŠãããã¯ããªãåä»ãªåé¡ã ãšæããŸãã
æãéèŠãªããšã¯ãããã€ãã®é©åãªããã©ã«ããå¿ èŠã§ãã ãããŠãããã¯ãããã2ã3ã®ã¡ãœãããå®è£ ããããšãæå³ããŸãïŒé£æ¥ããŠããªãã¡ãœãããå®å šã«å·æ°ããŸãïŒã ç§ã¯å€ããå°ãªããè€éãªãã®ããµããŒãããŠã倧äžå€«ã§ãããããã€ãã®ãå žåç/è¯ãããã®ã決å®ã§ããã°ãšæããŸãã
ç·åœ¢æ³ïŒçŸåšã®ããã©ã«ãïŒãšçŽ¯ç©ååžé¢æ°ã®éé¢æ°ïŒãã®åé¡ãäœæãããšãã«æ¢ããŠãããã®ãããã³æ£ããç解ããŠããå Žåã¯@albertcthomas ïŒã§ååã ãšæããŸãã åºæ¬çã«ãè£éãå¿ èŠãã©ãããéžæã§ããŸãã
ãããŠãçŸåšå®è£ ãããŠããä»ã®éžæè¢ã¯ç¢ºå®ã«åé€ããå¿ èŠããããŸãã
环ç©ååžé¢æ°ã®éé¢æ°ã確å®ã«è¿œå ããå¿ èŠããããŸãã ããã¯ãçµ±èšã«ããã芳枬ã®ç¹å®ã®ãµã³ãã«ããã®åäœæ°ã®æã人æ°ã®ããæšå®éã®1ã€ã§ãã
ãããŠãçŸåšå®è£ ãããŠããä»ã®éžæè¢ã¯ç¢ºå®ã«åé€ããå¿ èŠããããŸãã
@ ricardoV94ã¯ããŠã£ãããã£ã¢ãHyndman and Fanã®è«æã§ä»£æ¿æ¡ãåç §ãããŠããªãããããããèšã£ãŠããŸããïŒ
ã¯ããä»ã®ããã±ãŒãžã«ã¯å®è£ ãããŠããŸããã
ãªã誰ãããããã®ã¡ãœããã䜿ãããã®ãåãããŸããããããŠåœŒãã®ååã¯
ãŸãã誀解ãæãå¯èœæ§ããããŸãã
ã¢ã«ããŒãããŒãã¹[email protected] no dia quartaã2019幎2æ1æ¥
à ïŒsïŒ14:18ïŒ
ãããŠçŸåšå®è£ ãããŠããä»ã®éžæè¢ã¯ééããªã
åé€ãããŸããã@ ricardoV94 https://github.com/ricardoV94ãããèšã£ãŠããã®ã¯ã
ãŠã£ãããã£ã¢ã§ãããã€ã³ããã³ã§ãã
ãã¡ã³ã®çŽïŒâ
ããªããèšåãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/numpy/numpy/issues/10736#issuecomment-450861068 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/AbpAmfUoJNk3YHOSHNeVN03Va5wtvkHQks5u_LGugaJpZM4SnVpE
ã
ããããšãïŒ np.percentileã§å©çšå¯èœãªã¡ãœãããšããŠã环ç©ååžã®éæ°ãè¿œå ããããã«PRãéããŠã¿ãŸãããïŒ ä»£æ¿æ¡ã«ã€ããŠè©±ãåããç¶ãããå Žåã¯ããã®åé¡ãéãããŸãŸã«ããŸãïŒããã©ã«ãã®ãŸãŸã«ããå¿ èŠãããçŸåšã®ããã©ã«ããé€ãïŒã numpyã§ã¯éæšå¥šã¯ã©ã®ããã«åŠçãããŸããïŒ
ããã«ããã€ãã®è©³çŽ°æ
å ±-Python3.8ãstatistics.quantiles
ãè¿œå ããŸãã-åçã®ã¢ãŒããnp.quantile
ã«è¿œå ããããšãæ€èšããå¿
èŠããããŸã
åæ¹ããã§ã®æ¹æ³ã¯ãè¿œå ããããšããããmethod
kwargãã©ãŒãªã³ã°statistics
ïŒãã®å Žåã«ã¯ãPythonã®äžãå
ã®äœè
ã«pingãå®è¡ãããšè¯ãã§ãããïŒãã0-2ãè¿œå ãããã®ããå¯èœãªã
ããã©ã«ããç§ãã¡ãšåœŒãã®éã§äžèŽãããã©ããã¯ããããŸãããäžèŽããªãå Žåã¯æ®å¿µã§ãããããã§ãæåã®ã¢ã€ãã¢ã®ããã§ãïŒãšã«ããç§ãã¡ãèããŠãããã®ãšã»ãŒåãã§ãïŒã 0ã2åã®æ°ãããã¡ãœããããè¿œå ã§ããŸãã ãã®å Žåãå®éã®ååã§pythonçµ±èšæ åœè ã«pingãå®è¡ãããšããã§ããã...
PRã¯å€§æè¿ã§ãããããåé²ããããã®ã§ãããè¿ãå°æ¥ã¯è¡ããŸããã
@ eric-wieseré¢é£ããPRãããã€ãæ®ã£ãŠããããšã«æ³šæããŸããããããã®ãããããããã«å¯ŸåŠããŠããŸããïŒ
ããã1.19ã«ããã·ã¥ããŠããããã«ãŒã«ãªããªãããã«ããŸãã ããããããã¯1.18ã§ä¿®æ£ã§ããªããšããæå³ã§ã¯ãããŸãã:)
@charris ïŒã©ã®PRãèããŠããŸããïŒ
æ®å¿µãªããããã®æ¹åã«ã¯ãŸã äœããªããšæããŸãã