ãªããžã§ã¯ãé åã®èªåäœæã¯ãæè¿numpyã§éæšå¥šã«ãªããŸããã ç§ã¯ãã®å€æŽã«åæããŸããããŠãŒã¶ãŒãæå®ããåŒæ°ãéãªããžã§ã¯ãé åã«å€æå¯èœãã©ãããå€æããç¹å®ã®çš®é¡ã®ãžã§ããªãã¯ã³ãŒããæžãã®ã¯å°ãé£ããããã§ãã
Matplotlibã«ã¯ã次ã®ã¹ãããããå«ãŸããŠããŸãã
# <named ("string") colors are handled earlier>
# tuple color.
c = np.array(c)
if not np.can_cast(c.dtype, float, "same_kind") or c.ndim != 1:
# Test the dtype explicitly as `map(float, ...)`, `np.array(...,
# float)` and `np.array(...).astype(float)` all convert "0.5" to 0.5.
# Test dimensionality to reject single floats.
raise ValueError(f"Invalid RGBA argument: {orig_c!r}")
ãã ããé¢æ°ãããŸããŸãªåœ¢åŒã®è²ã®é
åïŒ ["red", (0.5, 0.5, 0.5), "blue"]
ïŒã§åŒã³åºãããå ŽåããããŸãã代ããã«ãValueErrorããã£ããããåã¢ã€ãã ãäžåºŠã«1ã€ãã€å€æããŸãã
ããã§ãnp.arrayïŒcïŒãåŒã³åºããšDeprecationWarningãçºè¡ãããŸãã ã©ãããã°ãããåé¿ã§ããŸããïŒ np.min_scalar_type(c)
ãããªãã®ã§ãèŠåãçºããŸãïŒãããã¹ãã§ã¯ãªããšæããŸããïŒïŒã®ã§ãããããé
åã«å€æããå Žåãdtypeã¯ã©ããªãã§ããããïŒãã確èªããæ¹æ³ãããããŸããã
1.19.0.dev0 + bd1adc3 3.8.0ïŒããã©ã«ãã2019幎11æ6æ¥ã21ïŒ49ïŒ08ïŒ
[GCC 7.3.0]
1ã€ã®ãªãã·ã§ã³ã¯
`` `python
è©ŠãïŒ
ïŒã²ãŒã ã«å
ãããŠãéæšå¥šããšã©ãŒã«ææ Œãããããã眮ãæããŸã
èŠåä»ã.catch_warningsïŒïŒïŒ
warnings.filterwarningsïŒ 'raise'ãDeprecationWarningãmessage = "..."ïŒ
c_arr = np.asarrayïŒcïŒ
ïŒDeprecationWarningãValueErrorïŒãé€ãïŒ
ïŒValueErrorã«å¯ŸããŠçŸåšè¡ã£ãŠããããšã¯äœã§ã
ç§ã¯ãããæšæž¬ãã倱æãã¹ããçºå
ã©ãã€ã³ã¹ã¿ã³ã¹ã§ããGH-15045ã«èšèŒãããDeprecationWarning
æ°å¹Žéã®ä»£ããã«ãçŽæ¥çºå
ValueError
å¿
èŠä»¥äžã®ã³ãŒããã£ãŒã³ãçºçããŸãã
warnings.catch_warnings
ã¯ã¹ã¬ããã»ãŒãã§ã¯ãªãããšã«æ³šæããŠãã ããã ãã®ãããåé¿çã¯ä»åŸã®ãã©ããŒã¢ããã®åé¡ã«ãªããã¡ã§ãã
ã³ãŒããã£ãŒã³ã¯éæšå¥šæéã®äŸ¡å€ããããšæããŸãã
Matplotlibã¯ã倱æãšããŠã®èŠåã䜿çšããŠãã¹ãã¹ã€ãŒããå®è¡ãããã®çš®ã®å€æŽãæ©æã«æ£ç¢ºã«ãã£ãããããããã·ã¹ãã ãæ©èœããŠããããã«èŠããŸã:)ã
ããããAFAICTã«ã¯ãåççã«ç°¡åãªä¿®æ£ãããããŸããïŒäžèšã§ææããããã«ãææ¡ãããä¿®æ£ã¯ã¹ã¬ããã»ãŒãã§ã¯ãããŸããïŒïŒ/
ããã«@anntzerã®ãã€ã³ãããããšæããŸãã ç§ãã¡ã¯ããŠãŒã¶ãŒãããç©ãããªã¡ãã»ãŒãžã衚瀺ãããã¹ãã§ããäžæ¹ã§ãããŠã³ã¹ããªãŒã ã©ã€ãã©ãªãä»ã®äœããè©Šãããšãã§ããããã«éã倱æããããšããæ··ä¹±ã«é¥ã£ãŠããŸãã
åé¡ã¯ãä»æ¥ãå³æžé€šã®äœè ãå®éã«èŠåãçºããããšãªãã«ãããã¯èŠåãçºããã ãããããšå°ããæ¹æ³ããªãããšã§ããããããæå¶ããããšã¯ã¹ã¬ããã»ãŒãã§ã¯ãããŸããã
èŠåã¹ã¬ããã»ãŒãã«ã€ããŠïŒ https ïŒ
AFAIKãéæšå¥šã¯ãªãªãŒã¹ãã©ã³ãã«ãããŸãã å ã«æ»ããŸããïŒ ããã§ãªãå Žåãä¿®æ£ã«ã¯ããã¯ããŒããå¿ èŠã«ãªããŸãã ãªãèŠåããªãªãŒã¹ãã©ã³ããã€ãŒã«ã§çºçãããæåŸã®2ã€ã®ãã«ããŸã§ãã€ããªãŒãã«ãã«è¡šç€ºãããªãã£ãã®ãã¯ãŸã ããããŸããã ãã©ã³ãã®åŸã§äœãå€æŽããŸããã§ããããã以éããã¹ã¿ãŒãã©ã³ãã§ã¯ãããããïŒ15040ãé€ããŠãã³ãããã§éåžžã«çããããã®ã¯äœããããŸããã
IMHO ïŒããã³äžèšã®äžèŽïŒã¯ãéæšå¥šæéãªãã§ã¬ã€ãºãžã®åãæ¿ããçºçããå ŽåãããŠã³ã¹ããªãŒã ã§åŠçããã®ãã¯ããã«ç°¡åã«ãªãçš®é¡ã®å€æŽã§ãã ããããªãã·ã§ã³ãã©ããã¯ããããŸãããïŒ/
ãŸãã¯ããã«ããã«ãã¯ãã©ã³ãããã¹ã¿ãŒãšã¯ç°ãªãæ¹æ³ã§åŠçããå¯èœæ§ããããŸãã
FWIWç§ã¯ãç¹ã«äžèŠåãªããŒã¿æ§é ã®ç±å¿ãªãŠãŒã¶ãŒãšããŠããã®å€æŽã«ã€ããŠåžžã«å°ãªããšã-1ã§ãããããšã«ããä»ãSciPy 1.4.0rc2
prepã®äœçŸãã®ãã¹ã倱æã«ã€ããŠäœããã¹ãããç解ããå¿
èŠããããŸãhttps://github.com/scipy/scipy/pull/11161
ä»ãç§ã¯äœçŸãã®ãã¹ãã®å€±æã«ã€ããŠäœããã¹ãããç解ããå¿ èŠããããŸã
ç°¡åãªãªãã·ã§ã³ã¯æ¬¡ã®ãšããã§ãã
䜿çšããŠç§ãã¡ã§å
šäœã®ãã€ã³ãDeprecationWarning
ã®ä»£ããã«ValueError
ãäžæµãããžã§ã¯ãããŠãŒã¶ãŒã«æ£ç¢ºã«è¡ãããã®ç¶äºæéãäžããããšã§ããã
AFAIKãéæšå¥šã¯ãªãªãŒã¹ãã©ã³ãã«ãããŸãã å ã«æ»ããŸããïŒ
ç§ãã¡ã¯ããã ãšæããŸããããã¯éšã®åé¡ã§ãã ããã§ãPandasãMatplotlibãSciPyã numpy.testing
ãNumPy ufuncsã ==
ãªã©ã§äœãå£ããŠãããã®ãªã¹ããã§ããŸãããä»ããå€æŽãå
ã«æ»ããŠãããããã¹ãŠãè©äŸ¡/ä¿®æ£ããå¿
èŠããããšæããŸãããã®åŸãéæšå¥šãåå°å
¥ããŸãã
ä¿çäžã®éæšå¥šèŠåã«ã€ããŠåŠ¥åããããšã¯ã§ããŸããïŒ
ããããã°ãããŠã³ã¹ããªãŒã ãããžã§ã¯ãã¯ãããç¡èŠãªã¹ãã«è¿œå ã§ããDeprecationWarningã«æ»ããšãåã³æ±ºå®ãäžãããšãã§ããŸãã
ãäžé£ã®å€ãäžããããå Žåãmatplotlibãããããåäžã®è²ã§ãããè²ã®ãªã¹ãã§ããããã©ã®ããã«å€æã§ãããããšããå
ã®åé¡ãšã¯ç°ãªãããã§ãã å€ãndarrayã«ãã£ã¹ããããã®é
åã®dtypeããã§ãã¯ããå¿
èŠã®ãªããœãªã¥ãŒã·ã§ã³ãããã¯ãã ãšæããŸãã ããçš®ã®ååž°çãªis_a_color()
é¢æ°ãããè¯ã解決çãããããŸããã
ïŒ15053ã§1.18.xã®å€æŽãå ã«æ»ããŸããã
ææ
ã¯ãscipyãšpandas CIãå£ãã®ã¯ããã¹ã¿ãŒã§ãäžæçã«å
ã«æ»ãã®ã«ååè¿·æã§ãããšããããšã§ãã ã§ãåºæ¬çã«ã¯ïŒ1ã¶æ以å
ãªã©ïŒäºå®éãã«æ»ããŠã»ããã§ãã ãããã解決çãèŠã€ããå¿
èŠããããããããŸããã ãŸãããã³ããè¡ã£ãŠããä¿®æ£ã¯ã catch_warnings
ã䜿çšããŠãããããå°ãæ°ã«ãªããŸãã
æ¬åœã«æ¹æ³ããªããã¹ã¬ããã»ãŒããªèŠåæå¶ãå¿
èŠãªå Žåã np.seterr
ã¯ããããããã®ããã®ã¹ããããä¿æããããšãã§ããŸãïŒ/ã
ãäžé£ã®å€ãäžããããå Žåãmatplotlibãããããåäžã®è²ã§ãããè²ã®ãªã¹ãã§ããããã©ã®ããã«å€æã§ãããããšããå ã®åé¡ãšã¯ç°ãªãããã§ãã
@anntzerãæèµ·ããåé¡ã¯ãã£ãšäžè¬çã ãšæããŸãã ããã¯ã次ã®ãããªããžãã¯ã䜿çšããŠãããŸããŸãªã¿ã€ãã®å ¥åãåãåãé¢æ°ãäœæããããšã§ãã
ndarray(flexible_input)
äœæããŸãuse_the_array
ãã®ãããªã³ãŒãã«dtype=object
ãè¿œå ããããšã¯ã§ããªãã®ã§ãäœããã¹ãã§ããããïŒ
ãŸãããã³ããè¡ã£ãŠããä¿®æ£ã¯ã
catch_warnings
ã䜿çšããŠãããããå°ãæ°ã«ãªããŸãã
@sebergã¯ããã«å¯ŸããŠsuppress_warnings
è¯ããªãã£ãã®ã§ããïŒ
@rgommersãããã suppress_warnings
ã¯ãèŠåã®æå¶ãæ°žç¶çã§ãã£ãŠã¯ãªããªããšãã«æ°žç¶çã§ãããšããåé¡ã解決ããŸããã ãã ããããã¯æ°ããPythonããŒãžã§ã³ã§ä¿®æ£ãããŠãããããå®éã«ã¯å¿
èŠãããŸããïŒãã¹ãããµããŒãããŠãããããããåªããããããã£ããããŸãããã¹ã¬ããã»ãŒãã¯ãµããŒããããŠããŸãããPython以å€ã§ãå¯èœãã©ããã¯ããããŸããããããããªããããã¯ããããæãŸãããããŸããïŒ
åé¡ã®ããã±ãŒã¹ããç§ãã¡ãäºæããŠããªãã£ãæ¬æ¥ã®æå³ïŒhttps://numpy.org/neps/nep-0034.htmlïŒã«åããŠå®è¡ããããã©ããã¯å®å šã«ã¯ããããŸããã
ãšã«ããã解決çã¯ããæžå¿µãè©äŸ¡ããããã³ã³ããã¹ãäŸåã®ãªããžã§ã¯ãdtypeãæ瀺çã«å¿ èŠã§ãããåââé¡ã®ããå ¥åãèªåã§åŠçããããšããæ¹éã«æ²¿ã£ãŠå€ãåäœãæ瀺çã«æå¹ã«ããããšã§ãã ã®ãããªãã®
~~~
np.arrayïŒdataãdtype = 'allow_object'ïŒ
np.arrayïŒdataãallow_object_dtype = TrueïŒ
np.array_create_allow_object_dtypeïŒïŒã䜿çšïŒ
np.arrayïŒdataïŒ
~~~
ãã¹ãŠãããŸããããã§ã¯ãªããååã確å®ã«æ¹åãããŸãã ããããããã¯ãåäœã«äŸåããïŒå°ãªããšãåœé¢ã¯ïŒãããç¶æãããã©ã€ãã©ãªã«ã¯ãªãŒã³ãªæ¹æ³ãæäŸããŸãã
å®éã«ã¯matplotlibã®å Žåã§ã¯ãããŸããïŒ
with np.forbid_ragged_arrays_immediately():
np.array(data)
ãªããžã§ã¯ãã®dtypeãååŸããã®ã§ã¯ãªããæ¬åœã«ãšã©ãŒããã£ãããããã®ã§ããããã
çŸåšãã¹ã¿ãŒã«å¯ŸããŠä¿çäžã®éæšå¥šã®åŸ©åž°ã¯ãããŸããã 1.18ã®ããã«å€§èŠæš¡ã«å ã«æ»ãå¿ èŠã¯ãªããšæããŸããããã«ãããä¿®æ£ãåé€ããããããä¿æããããšæããŸãã @mattipé·æçã«äœããã¹ããã決å®ãããŸã§ãããçãçµã£ã埩垰ããé¡ãããŸãã
FWIWããã«åœããmplã®ã»ãšãã©ã®å Žæã¯ä¿®æ£ã§ãããšæããŸãïŒå€ããå°ãªããåæ§ç¯ããããšã§-ããå Žåã«ã¯ãã³ãŒããã¯ããã«é«éã«ãªã£ãåŸ...ïŒã
@timhoffmãææ¡ããAPIã¯ã with np.forbid_ragged_arrays_immediately:
ãããåªããŠãããšæããŸããåŸè
ã¯åè
ïŒ np.array(..., allow_object=True).dtype == object
å Žåtry: with np.forbid: ... except ValueError: ...
çµå±ã®ãšããããªããžã§ã¯ãé
åãäœæãããå Žåã¯ã
ïŒç¹°ãè¿ãã«ãªããŸãããå€æŽã¯è¯ããã®ã ãšæããŸããããã¯å®è¡æ¹æ³ã®åé¡ã§ããïŒ
ãããAPIãã©ã®ããã«èŠããã¹ãããç解ããå¿ èŠããããŸãã å€ãã®äººãææããŠããããã«ãçŸåš2ã€ã®äž»èŠãªåé¡ããããŸãã
object
ãš"allow ragged"
亀絡ã ãªããžã§ã¯ãã®ã¿ã€ãã劥åœãªå ŽåïŒããšãã°Decimal
ïŒãå®éã«ã¯èŠå/ãšã©ãŒãååŸããããã dtype=object
ãæž¡ãå¿
èŠãããå ŽåããããŸããæåŸã«ãã³ãŒãã«è©°ã蟌ãæ¹æ³ãç解ããå¿
èŠããããŸã:)ã ndmin
ã¯ãå°ãªããšãäžèŠåãªæ¯ãèããå¶åŸ¡ãããã©ãã°ãè©°ã蟌ãããã®ãã1ã€ã®ã¿ãŒã²ããã§ããå¯èœæ§ããããŸãã
çŸåšãã¹ã¿ãŒã«å¯ŸããŠä¿çäžã®éæšå¥šã®åŸ©åž°ã¯ãããŸããã 1.18ã®ããã«å€§èŠæš¡ã«å ã«æ»ãå¿ èŠã¯ãªããšæããŸããããã«ãããä¿®æ£ãåé€ããããããä¿æããããšæããŸãã @mattipé·æçã«äœããã¹ããã決å®ãããŸã§ãããçãçµã£ã埩垰ããé¡ãããŸãã
å®å šã«å ã«æ»ããŠãããæå³ã®ããéšåãåå°å ¥ããŠãåé¡ã¯çºçããŸããã ç¹°ãè¿ãã«ãªããŸãããäœããå ã«æ»ãããšã¯ãäœãè¯ããæªããã«ã€ããŠã®äŸ¡å€å€æã§ã¯ãããŸãããããŒãžãã¿ã³ãæŒãããšã§å£ãããã®ã®æãå£ããªãããã®å®çšçãªæ¹æ³ã§ãã NEPã§ã¯äºæž¬ãããŠããªãã£ãæãããªåœ±é¿ãšæªè§£æ±ºã®åé¡ããããããæåã«å ã«æ»ãããšãæ£ããããšã§ãã
ãŸã å ã«æ»ããªããšããè°è«-å€æŽããã¹ã¿ãŒã«ããéãããŠã³ã¹ããªãŒã CIã®å®è¡ã掻çšããŠãåé¿çãã©ã®ããã«ãªãããè©ŠããŠã¿ãããšãã§ããŸã
ããŠã³ã¹ããªãŒã CIã¯èµ€ã§ãããã¯_éåžžã«_圹ã«ç«ããªãã§ãã ããã§å€±æã®ãªã¹ããã§ããŸãããããã§ã®ç掻ãå°ã楜ã«ããããã«ãCIãèµ€ãä¿ã€å¿ èŠã¯ãããŸããã
ãããŠãå°ãªããšãMatplotlibã®CIã¯ããã¹ã¿ãŒãã©ã³ãã§ã¯ãªãpip install --pre
ã«å¯ŸããŠå®è¡ãããŠããŸã
ãããŠãå°ãªããšãMatplotlibã®CIã¯ããã¹ã¿ãŒãã©ã³ãã§ã¯ãªã
pip install --pre
ã«å¯ŸããŠå®è¡ãããŠããŸã
ããã¯ãããèŠããå€ã®è»èŒªããåŒã£åŒµã£ãŠããŸãã å€æŽã¯1.18.0rc1ã§ãã§ã«å
ã«æ»ãããŠãããããPyPIãã--pre
ã䜿çšããŠã€ã³ã¹ããŒã«ããå Žåã¯è¡šç€ºãããªãã¯ãã§ãã
äžèšã®ã³ã¡ã³ãã®ããã€ãã¯ãNEP 34ã§ææ¡ãããå€æŽãåèããããšã«ãªããŸãããã®ã¹ã¬ããããã®è°è«ãç¶ããã®ã«é©åãªå Žæã§ãããã©ããã¯ããããŸããããããã§èª¬æããŸãã ïŒä»ã®å Žæã§è°è«ããå¿ èŠãããå Žåã§ã害ã¯ãããŸãããã³ã¡ã³ãã®ã³ããŒãšè²Œãä»ãã¯ç°¡ââåã§ããïŒsmileïŒãŸããã¹ã©ãã¯ã«é¢ããè°è«ã§ãããã®ã³ã¡ã³ãã®ããªãšãŒã·ã§ã³ãèŠãããšããã人ãããŸããïŒ
æè¿ããã«ã€ããŠèããåŸãç§ã¯@timhoffmã®æåã®ææ¡ãšåãã¢ã€ãã¢ã«dtype
åŒæ°array
ããã³ãã«ãžã®é¢æ°ã¯äžèŠå圢ç¶ã®å
¥åã1次å
ãªããžã§ã¯ãé
åãäœæããããšã«ãã£ãŠå¯èœãšãªããŸãã äºå®äžãããã«ãããNEP-34ããåã®dtype=None
åäœãå¯èœã«ãªããäžèŠåãªåœ¢ç¶ã®å
¥åãèªåçã«ãªããžã§ã¯ãé
åã«å€æãããŸãã dtype
ä»ã®å€ïŒ None
ãŸãã¯object
ïŒãæå®ãããŠããå Žåãå
¥åãäžèŠåãªåœ¢ã§ãããšéæšå¥šã®èŠåã衚瀺ãããŸãã NumPyã®å°æ¥ã®ããŒãžã§ã³ã§ã¯ããã®èŠåã¯ãšã©ãŒã«å€æãããŸãã
dtype=object
ã䜿çšããŠäžèŠåãªåœ¢ç¶ã®å
¥åãåŠçã§ããããã«ããããšã¯ãåé¡ã®é©åãªè§£æ±ºçã§ã¯ãªãããšã¯æããã ãšæããŸãã çæ³çã«ã¯ãããªããžã§ã¯ãé
åãã®æŠå¿µããäžèŠåé
åãããåãé¢ããŸãã ãã ããããããå®å
šã«åé¢ããããšã¯ã§ããŸãããäžèŠåãªé
åãåŠçããå Žåãå¯äžã®éžæè¢ã¯ãªããžã§ã¯ãé
åãäœæããããšã ããã§ãã äžæ¹ããªããžã§ã¯ãé
åãå¿
èŠãªå ŽåããããŸãããäžèŠåãªåœ¢ç¶ã®å
¥åãã·ãŒã±ã³ã¹ã®ãªããžã§ã¯ãé
åã«èªåçã«å€æããããªãå ŽåããããŸãã
ããšãã°ïŒ @sebergã®æåŸã®ã³ã¡ã³ãã®é
ç®1ãåç
§ïŒã f1
ã f2
ã f3
ãããã³f4
ãFraction
ãªããžã§ã¯ãããããŠç§ã¯Fraction
ã®ãªããžã§ã¯ãé
åãæ±ã£ãŠããŸãã ãžã£ã°é
åã®äœæã«ã¯èå³ããããŸããã 誀ã£ãŠa = np.array([f1, f2, [f3, f4]], dtype=object)
ãšæžã蟌ãã å ŽåãNEP 34ããããšãããã¹ãŠã®çç±ããããšã©ãŒãçæããå¿
èŠããããŸãããã ããNEP 34ã䜿çšãããšãé·ã3ã®1次å
é
åãäœæãããŸãã
@timhoffmã®2çªç®ã®ææ¡ãªã©ãæ°ããããŒã¯ãŒãåŒæ°ãè¿œå ãã代æ¿æ¡ã¯ãå¿
èŠä»¥äžã«è€éã«èŠããŸãã ç§ãã¡ã解決ããããšããŠããåé¡ã¯ãäžèŠåãªå
¥åãèªåçã«1次å
ãªããžã§ã¯ãé
åã«å€æãããããããã¬ã³ãã§ãã ãã®åé¡ã¯ã dtype=None
ãarray
æž¡ãããå Žåã«ã®ã¿çºçããŸãã å€ãåä»ãªåäœãç¶æããããã«dtype=None
ãdtype=<special-value-that-enables-ragged-handling>
ã«çœ®ãæããããã«ãŠãŒã¶ãŒã«èŠæ±ããããšã¯ã説æããããAPIãžã®åçŽãªå€æŽã§ãã æ¬åœã«ãã以äžã®ãã®ãå¿
èŠã§ããïŒ
dtype=object
ã䜿çšããŠäžèŠåãªåœ¢ç¶ã®å ¥åã®åŠçãæå¹ã«ããããšã¯ãåé¡ã®é©åãªè§£æ±ºçã§ã¯ãªãããšã¯æããã ãšæããŸãã çæ³çã«ã¯ãããªããžã§ã¯ãé åãã®æŠå¿µããäžèŠåé åãããåãé¢ããŸãã
å€åãåççã«èãããŸãã NumPyã«ã¯å®éã®ããžã£ã°é
åãã®æŠå¿µããªãããšãææããã®ãè¯ãããšã§ãã ããã¯åºæ¬çã«ãµããŒããããŠããªããã®ã§ããïŒããã¥ã¡ã³ãã課é¡è¿œè·¡ã·ã¹ãã ããŸãã¯ã¡ãŒãªã³ã°ãªã¹ãã§ãäžèŠåããæ€çŽ¢ããŠå¿
èŠãã©ããã確èªããŸãïŒãDyNDãšXNDããµããŒãããŠãããã®ã§ãããç°¡æœã«ããããã«è©±ãå§ããã ãã§ãã ããŠãŒã¶ãŒãã€ãŸããããnp.array([1, [2, 3]])
åäœãåé€ãããããšãããã¬ãŒãºã ãããã£ãŠãæ°ããAPIãšããŠã®ããžã£ã°é
åãã®ãã€ã¯åŠçã¯ã现å¿ã®æ³šæãæã£ãŠè¡ãå¿
èŠããããŸããããã¯ãç§ãã¡ã宣äŒãããããšã§ã¯ãããŸããã ãããã£ãŠãè¿œå ããå¯èœæ§ã®ããdtype=some_workaround
ã®ååãæ確ã«ããããšããå§ãããŸãã
äžè¬çãªæèŠã¯ãèš±å¯ããããšã§ïŒå€åç¡éã«ïŒå»æ¢ãæ¡åŒµãããœãªã¥ãŒã·ã§ã³ãåšãã«åäœãããŠããããã np.array(vals, dtype=special)
ããã¯ãã©ã€ãã©ãªã®äœ¿çšãè¡ãããšãã§ããããšãæå³ããã®ã§NEP 34ã®åã«ç§ã¯ãæååã§ã¯ãªãã·ã³ã°ã«ãã³ã奜ãããã«æ¯ãèãã§ãããspecial = getattr(np.special, None)
ãšãã®ã³ãŒãã¯ãããŒãžã§ã³éã§æ©èœããŸãã
次ã«ãååãšãããå
¬éããå Žæã決å®ããå¿
èŠããããŸãã ããããnever_fail
ãŸãã¯guess_dimensions
ïŒ ã©ãã«å
¬éãããã«ã€ããŠã¯ãä»ã®å
éšã¢ãžã¥ãŒã«ã§ã¯ãªãã np
ã«ã¶ãäžããããªãã®ã§ãå®éã«ãã©ã€ããŒãã€ã³ã¿ãŒãã§ã€ã¹ã§ããããšã瀺ãããã«_
ã䜿çšããŸãã
ä»åŸã®éã¯ãNEP 34ãä¿®æ£ããã¡ãŒãªã³ã°ãªã¹ãã§è°è«ãå ¬éããããšã ãšæããŸãã
æŒç®åã®äœ¿çšã«é¢ããåé¡ã«ã€ããŠãããã€ãã®å ±åãããããšã«æ³šæããŠãã ããïŒå°ãªããšã==
ãšoperator.mod
ïŒã ãããç¡èŠããããšãææ¡ããŠããŸããããããšãã©ãããããããã®ç¶æ
ãé
åã«ä¿åããããšãææ¡ããŠããŸããïŒ
ã»ãšãã©ãã¹ãŠã®å Žåããªãã©ã³ãã®1ã€ãnumpyé åã§ããããšãããããç¥ãããŠããŸãã ãããã£ãŠãæåã§numpyé åã«å€æããããšã§ãæ確ã«å®çŸ©ãããåäœãååŸã§ããã¯ãã§ãã
誰ããoperator.mod
äŸãææã§ããŸããïŒ
==
æŒç®åã«é¢ããŠã¯ãç§ãèŠãã®ã¯np.array(vals, dtype=object) == vals
ãããªããšvals=[1, [2, 3]]
ïŒã³ãŒããèšãæããïŒãªã®ã§ã解決çã¯å³åŽã®é
åãç©æ¥µçã«äœæããããšã§ããåŽã
scipyã®å€±æã®å€ãã¯ã np.array([0.25, np.array([0.3])])
ã®åœ¢åŒã®ããã§ããããã§ãã¹ã«ã©ãŒãšndarrayãshape==(1,)
ãšæ··åãããšã次å
ã®æ€åºã«å€±æãããªããžã§ã¯ãé
åãäœæãããŸãã å€éšåç
§gh-15075
誰ãã
operator.mod
äŸãææã§ããŸããïŒ
@jbrockmendelã®PandasPRã§ãããèŠãŸãããããã以éã¯å€æŽããããšæããŸãïŒã³ã¡ã³ãã«æ瀺çãªoperator.mod
ã¯è¡šç€ºãããªããªããŸããïŒã
==
æŒç®åã«é¢ããŠã¯ãç§ãèŠãã®ã¯np.array(vals, dtype=object) == vals
ãããªããšvals=[1, [2, 3]]
ïŒã³ãŒããèšãæããïŒãªã®ã§ã解決çã¯å³åŽã®é åãç©æ¥µçã«äœæããããšã§ããåŽã
ãã®æç¹ã§np.array(vals, dtype=object) == np.array(vals, dtype=object)
ã«ãªãã®ã§ããã¹ããåé€ããæ¹ãããã§ããã:)
@mattipã¯æžããïŒ
ç§ã¯æååãããã·ã³ã°ã«ãã³ã奜ã¿ãŸããããã¯ãã©ã€ãã©ãªã®äœ¿çšãspecial = getattrïŒnp.specialãNoneïŒãå®è¡ã§ãããããã®ã³ãŒããããŒãžã§ã³éã§æ©èœããããšãæå³ããããã§ãã
ããã¯ç§ã«ã¯å€§äžå€«ã ãšæããŸãã
次ã«ãååãšãããå ¬éããå Žæã決å®ããå¿ èŠããããŸãã ãããã
never_fail
ãŸãã¯guess_dimensions
ïŒ ã©ãã«å ¬éãããã«ã€ããŠã¯ãä»ã®å éšã¢ãžã¥ãŒã«ã§ã¯ãªããnpã«ã¶ãäžããããªãã®ã§ãå®éã«ãã©ã€ããŒãã€ã³ã¿ãŒãã§ã€ã¹ã§ããããšã瀺ãããã«_ãä»ããŸãã
ããã«å¯Ÿããç§ã®çŸåšã®ä»®ç§°ã¯legacy_auto_dtype
ã§ãããããããä»ã«ãå€ãã®äžæºã®ãªãååããããŸãã
ååãéå
¬éã«ããå¿
èŠããããã©ããã¯ããããŸããã _private_ãš_public_ã®å®éçãªå®çŸ©ã«ãããããã¯_public_ãªããžã§ã¯ãã«ãªããŸãã ããã¯ãäŸãã°ãã®åŸæ¥ã®åäœãç¶æããããã«ãŠãŒã¶ãŒã«æ段ãæäŸarray(data)
æžãæããããšã«ããããã®ããarray(data, dtype=legacy_auto_dtype)
ã æŽæ°ãããNEPã¯ããããã¬ã¬ã·ãŒåäœãç¶æããããã«ã³ãŒããå€æŽããæ¹æ³ã§ãããšèª¬æãããšæããŸãïŒããããªããã°ãªããªã人ã®ããã«ïŒã ãã®å Žåããªããžã§ã¯ãã¯ééããªããã©ã€ããŒãã§ã¯ãããŸããã å®éãNumPyã«ç¡æéã«æ®ãã®ã¯ãããªãã¯ãªããžã§ã¯ãã®ããã§ãã ãããããããããå€æŽãããNEP34ãã©ã®ããã«æ©èœãããã«ã€ããŠã®ç§ã®ç解ã¯ééã£ãŠããŸãã
@WarrenWeckesserã®å®æ°ã®èª¬æã«åæããŸããã å ¬éãããŠããããNumPy以å€ã®äººã䜿çšããªãã§ãã ããã
ååã®å€æŽïŒæ©èœã説æããååãéžæããŠãã ããã ãã¬ã¬ã·ãŒãã®ãããªãã®ã¯ãã»ãšãã©æ±ºããŠè¯ãèãã§ã¯ãããŸããã
æ©èœã説æããååãéžæããŠãã ããã
auto_object
ã auto_dtype
ã auto
ïŒ
å°ã倧声ã§èããŠ...
ãã®ãªããžã§ã¯ãã¯äœãããŸããïŒ
çŸåšãNumPyã«éåžžã®ndé
åãšé·ããäžèŽããªããµãã·ãŒã±ã³ã¹ãå«ãPythonãªããžã§ã¯ããäžãããããšãNumPyã¯object
ããŒã¿åã®é
åãäœæãããªããžã§ã¯ãã¯åœ¢ç¶ã®äžäžèŽãçºçããæåã®ã¬ãã«ã«ãªããŸãPythonãªããžã§ã¯ããšããŠæ®ããŸããã ããšãã°ã array([[1, 2], [1, 2, 3]])
圢ç¶ã¯(2,)
ã np.array([[1, 2], [3, [99]]])
圢ç¶ã¯(2, 2)
ãªã©ã§ããNEP34ã§ã¯ããã®åäœãéæšå¥šã«ããŠããããã ãäžèŠåãªãå
¥åãæã€é
åã¯ãæ瀺çã«æå¹ã«ãããŠããªãéããæçµçã«ãšã©ãŒã«ãªããŸãã ç§ãã¡ã話ããŠããç¹å¥ãªå€ã¯ãå€ãæ¯ãèããå¯èœã«ããŸãã
ãã®ããã®è¯ãååã¯äœã§ããïŒ ragged_as_object
ïŒ inconsistent_shapes_as_object
ïŒ
ãã®æç¹ã§
np.array(vals, dtype=object) == np.array(vals, dtype=object)
ã«ãªãã®ã§ããã¹ããåé€ããæ¹ãããã§ããã:)
ãããšãèšãæããŠããŸããã å®éã®ãã¹ãã¯ã my_func(vals) == vals
ãmy_func(vals) == np.array(vals, dtype=object)
ãªãã¯ãã§ãã
dtypeã«ç¹å¥ãªå€ãèš±å¯ããããã«ãNEP34ã®æ¡åŒµãææ¡ããŸãã
scipy / scipyïŒ11310ããã³scipy / scipyïŒ11308ã®ãã¹ãã«åæ Œããããã«ãscipyã¯ãã®ã»ã³ããã«ãå¿ èŠãšããªãããã§ãã
gh-15119ãçµ±åãããNEPãåå®è£ ãããŸããã å ã«æ»ãããªãå Žåã¯ããã®åé¡ã解決ã§ããŸã
1.19ãªãªãŒã¹ã®åã«ãã©ããŒã¢ããããŠããªãã£ãã®ã§ããããéããŸãã ãããŠãå°ãªããšããã®çç±ã¯ããã¹ãŠã®äž»èŠãªãããžã§ã¯ããããã«ãã£ãŠåŒãèµ·ããããåé¡ã®åççãªè§£æ±ºçãèŠã€ããããšãã§ããããã«è°è«ãçµãã£ãããã ãšæããŸãã
ç§ãééã£ãŠããå Žåãç¹ã«ãã³ããmatplotlibãªã©ã§åé¡ãçºçããããå Žåã¯ãèšæ£ããŠãã ããããã ãã1.19.xãªãªãŒã¹åè£ãµã€ã¯ã«äžã«ãã®ããšãèããããšããããšæããŸãã
æãåèã«ãªãã³ã¡ã³ã
誰ãã
operator.mod
äŸãææã§ããŸããïŒ==
æŒç®åã«é¢ããŠã¯ãç§ãèŠãã®ã¯np.array(vals, dtype=object) == vals
ãããªããšvals=[1, [2, 3]]
ïŒã³ãŒããèšãæããïŒãªã®ã§ã解決çã¯å³åŽã®é åãç©æ¥µçã«äœæããããšã§ããåŽãscipyã®å€±æã®å€ãã¯ã
np.array([0.25, np.array([0.3])])
ã®åœ¢åŒã®ããã§ããããã§ãã¹ã«ã©ãŒãšndarrayãshape==(1,)
ãšæ··åãããšã次å ã®æ€åºã«å€±æãããªããžã§ã¯ãé åãäœæãããŸãã å€éšåç §gh-15075