Numpy: рд╡рд╕реНрддреБ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ "рдирд┐рдпрдВрддреНрд░рд┐рдд" рдирд┐рд░реНрдорд╛рдг

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рджрд┐рд╕ре░ 2019  ┬╖  45рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: numpy/numpy

рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рд╕реНрд╡рддрдГ-рдирд┐рд░реНрдорд╛рдг рд╣рд╛рд▓ рд╣реА рдореЗрдВ 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 рдкрдХрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдЕрдм np.array(c) рдкрд░ рдХреЙрд▓ рдПрдХ DeprecationWarning рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░реЗрдЧреАред рд╣рдо рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ np.min_scalar_type(c) рдЬреИрд╕рд╛ рдХреБрдЫ рднреА рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?), рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдЕрдЧрд░ рд╣рдо рдЗрд╕ рдЪреАрдЬрд╝ рдХреЛ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ dtype рдХреНрдпрд╛ рд╣реЛрдЧрд╛?"

Numpy/рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рдирдХрд╛рд░реА:


1.19.0.dev0+bd1adc3 3.8.0 (рдбрд┐рдлрд╝реЙрд▓реНрдЯ, 6 рдирд╡рдВрдмрд░ 2019, 21:49:08)
[рдЬреАрд╕реАрд╕реА 7.3.0]

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХреНрдпрд╛ рдХреЛрдИ operator.mod рдЙрджрд╛рд╣рд░рдг рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдЬрд╣рд╛рдВ рддрдХ == рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИ, рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╡рд╣ np.array(vals, dtype=object) == vals рдЬреИрд╕рд╛ рдХреБрдЫ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЬрд╣рд╛рдВ vals=[1, [2, 3]] (рдХреЛрдб рдХреЛ рдкреИрд░рд╛рдлреНрд░реЗрд╢ рдХрд░рдирд╛), рдЗрд╕рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рджрд╛рдИрдВ рдУрд░ рд╕рд░рдгреА рдмрдирд╛рдирд╛ рд╣реИ рдкрдХреНрд╖ред

рдХрдИ scipy рд╡рд┐рдлрд▓рддрд╛рдПрдВ np.array([0.25, np.array([0.3])]) рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╕реНрдХреЗрд▓рд░ рдФрд░ ndarray рдХреЛ shape==(1,) рд╕рд╛рде рдорд┐рд▓рд╛рдиреЗ рд╕реЗ рдЖрдпрд╛рдо рдХреА рдЦреЛрдЬ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧреА рдФрд░ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдРрд░реЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрдЧрд╛ред xref gh-15075

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

рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛
`` `рдкрд╛рдпрдерди
рдкреНрд░рдпрддреНрди:
# рдЦреЗрд▓ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝реЗрдВ рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдкрджрд╛рд╡рдирддрд┐ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдВ рдЬреЛ рдЗрд╕реЗ рдмрджрд▓ рджреЗрдЧреА
рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдеред рдХреИрдЪ_рд╡рд╛рд░реНрдирд┐рдВрдЧреНрд╕ ():
рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБред рдлрд╝рд┐рд▓реНрдЯрд░ рдЪреЗрддрд╛рд╡рдиреА ('рдЙрдард╛рдПрдБ', рдкрджрд╛рд╡рдирддрд┐ рдЪреЗрддрд╛рд╡рдиреА, рд╕рдВрджреЗрд╢ = "...")
c_arr = np.asarray(c)
рд╕рд┐рд╡рд╛рдп (рдмрд╣рд┐рд╖реНрдХрд░рдг рдЪреЗрддрд╛рд╡рдиреА, ValueError):
# рдЬреЛ рдХреБрдЫ рднреА рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ ValueError рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ

рдореБрдЭреЗ рдпрд╣ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ gh-15045 рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬрд╣рд╛рдВ DeprecationWarning рдХреЛ рд╕реАрдзреЗ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП ValueError рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрдб рдордВрдерди рд╣реЛрддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ warnings.catch_warnings рдереНрд░реЗрдбрд╕реЗрдл рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рд▓рд╛рдЗрди рдХреЗ рдиреАрдЪреЗ рдлреЙрд▓реЛрдЕрдк рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рд╛ рдкреНрд░рд╡рдг рдмрдирд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб-рдордВрдерди рдмрд╣рд┐рд╖реНрдХрд░рдг рдЕрд╡рдзрд┐ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

Matplotlib рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡ рдХреЛ рдЬрд▓реНрджреА рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ-рдЕрд╕-рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ :)ред

рд▓реЗрдХрд┐рди AFAICT рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрд╕рд╛рди рдлрд┐рдХреНрд╕ рднреА рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдлрд┐рдХреНрд╕ рдереНрд░реЗрдбрд╕реЗрдл рдирд╣реАрдВ рд╣реИ): /

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ @anntzer рдХреА рдмрд╛рдд рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рд╣рдо рдПрдХ рдРрд╕реА рдЧрдбрд╝рдмрдбрд╝реА рдореЗрдВ рд╣реИрдВ рдЬрд╣рд╛рдВ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рддреЗрдЬреА рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рддреА рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдХреБрдЫ рдФрд░ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХреЗрдВ, рдЬрдмрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рд╕рднреНрдп рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдереНрд░реЗрдб-рд╕реБрд░рдХреНрд╖рд╛ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ: https://bugs.python.org/issue37604

AFAIK, рдмрд╣рд┐рд╖реНрдХрд░рдг рд░рд┐рд▓реАрдЬ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реИред рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рдмреИрдХрдкреЛрд░реНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореИрдВ рдЕрднреА рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рд░рд┐рд▓реАрдЬ рд╢рд╛рдЦрд╛ рдкрд╣рд┐рдпреЛрдВ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЙрдард╛рдИ рдЧрдИрдВ рдФрд░ рдЖрдЦрд┐рд░реА рджреЛ рдмрд┐рд▓реНрдб рддрдХ рд░рд╛рдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреАрдВред рдореИрдВрдиреЗ рд╢рд╛рдЦрд╛ рдХреЗ рдмрд╛рдж рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рдФрд░ рддрдм рд╕реЗ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ, рд╕рдВрднрд╡рддрдГ, # 15040 рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрдорд┐рдЯреНрд╕ рдореЗрдВ рдХреБрдЫ рднреА рд╕рдВрджрд┐рдЧреНрдз рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рд╣реИред

рдЖрдИрдПрдордПрдЪрдУ (рдФрд░ рдКрдкрд░

рдпрд╛ рд╕рдВрднрд╡рддрдГ рдорд▓реНрдЯреАрдмрд┐рд▓реНрдб рд╡реНрдпрд╡рд╣рд╛рд░ рд╢рд╛рдЦрд╛рдПрдВ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВред

FWIW рдореИрдВ рд╣рдореЗрд╢рд╛ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдХрдо рд╕реЗ рдХрдо -1 рдерд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░реИрдЧреНрдб рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдПрдХ рдЙрддреНрд╕реБрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рд▓реЗрдХрд┐рди рд╡реИрд╕реЗ рднреА рдЕрдм рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ SciPy 1.4.0rc2 рддреИрдпрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╕реИрдХрдбрд╝реЛрдВ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред https://github.com/scipy/scipy/pull/11161

рдЕрдм рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд╕реИрдХрдбрд╝реЛрдВ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ

рдПрдХ рдЖрд╕рд╛рди рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛:

  • рдЕрдкрдиреЗ pytest config рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд░реЛрдХреЗрдВ
  • рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдЦреЛрд▓реЗрдВ

рд╣рдореЗрдВ рдореЗрдВ рдкреВрд░реЗ рдореБрджреНрджреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ DeprecationWarning рдХреЗ рдмрдЬрд╛рдп ValueError рдиреАрдЪреЗ рдХреА рдУрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдЙрди рдмрд┐рд▓реНрдХреБрд▓ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреА рдЧреНрд░реЗрд╕ рдЕрд╡рдзрд┐ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

AFAIK, рдмрд╣рд┐рд╖реНрдХрд░рдг рд░рд┐рд▓реАрдЬ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реИред рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдореБрджреНрджреЛрдВ рдХреА рдмрд╛рд░рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрдВрдбреЛрдВ, Matplotlib, SciPy, numpy.testing рдФрд░ NumPy ufuncs, == рдЖрджрд┐ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рдЯреВрдЯ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЕрдм рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрди рд╕рднреА рдХрд╛ рдЖрдХрд▓рди/рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЪреАрдЬрд╝реЗрдВ, рдлрд┐рд░ рдмрд╣рд┐рд╖реНрдХрд░рдг рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВред

рдХреНрдпрд╛ рд╣рдо рдПрдХ рд▓рдВрдмрд┐рдд рдореВрд▓реНрдпрд╣реНрд░рд╛рд╕ рдЪреЗрддрд╛рд╡рдиреА рдкрд░ рд╕рдордЭреМрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

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

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

рдореИрдВрдиреЗ 1.18.x рдХреЗ рд▓рд┐рдП #15053 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

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

рдпрджрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдереНрд░реЗрдб-рд╕реБрд░рдХреНрд╖рд┐рдд рдЪреЗрддрд╛рд╡рдиреА рджрдорди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред np.seterr рд╕рдВрднрд╡рддрдГ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд▓реЙрдЯ рд░рдЦ рд╕рдХрддрд╛ рд╣реИ: /ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдореВрд▓ рдореБрджреНрджреЗ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЧрдП рд╣реИрдВ, рдЬреЛ "рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрдХреНрд░рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдПрдХ рд░рдВрдЧ рдпрд╛ рд░рдВрдЧреЛрдВ рдХреА рд╕реВрдЪреА рд╣реИрдВ"ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @anntzer рдЬреЛ рдореБрджреНрджрд╛

  • ndarray(flexible_input) рдмрдирд╛рдПрдВ
  • рдЕрдЧрд░ `new_ndarray.dtype.kind == 'O': рдЗрд╕реЗ рд╕рдВрднрд╛рд▓реЗрдВ
  • рдЕрдиреНрдп: use_the_array

рдЪреВрдБрдХрд┐ рдХреЛрдИ рдРрд╕реЗ рдХреЛрдб рдореЗрдВ dtype=object рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛, рддреЛ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдлрд┐рдХреНрд╕рдЕрдк рдкрд╛рдВрдбрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЪрд┐рдВрддрд╛рдЬрдирдХ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ catch_warnings ред

@seberg рдЗрд╕рдХреЗ рд▓рд┐рдП suppress_warnings рдмреЗрд╣рддрд░ рдирд╣реАрдВ рдерд╛?

@rgommers рдирд╣реАрдВ, suppress_warnings рдиреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рджрдорди рдХреЗ рдореБрджреНрджреЗ рдХреЛ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрдм рдпрд╣ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдирдП рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ (рдЗрд╕рдореЗрдВ рдмреЗрд╣рддрд░ рдЧреБрдг рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдШреЛрдВрд╕рд▓реЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╛рдЗрдерди рдХреЗ рдмрд╛рд╣рд░ рднреА рд╕рдВрднрд╡ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рдРрд╕рд╛ рдерд╛, рддреЛ рд╢рд╛рдпрдж рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рдирд╣реАрдВ рд╣реИ)

рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдорд╛рдорд▓реЗ рдореВрд▓ рдЗрд░рд╛рджреЗ (https://numpy.org/neps/nep-0034.html) рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрднреА рдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдирд╣реАрдВ рд╣реИрдВред

рд╡реИрд╕реЗ рднреА, рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ "рдЖрдкрдХреА рдЪрд┐рдВрддрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реБрдП рдкреБрд░рд╛рдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрджрд░реНрдн-рдирд┐рд░реНрднрд░ рдСрдмреНрдЬреЗрдХреНрдЯ dtype рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдЗрдирдкреБрдЯ рдХреЛ рд╕реНрд╡рдпрдВ рд╕рдВрднрд╛рд▓ рд▓реЗрдВрдЧреЗ"ред рдХреБрдЫ рдРрд╕рд╛

~~~
np.array(рдбреЗрдЯрд╛, dtype='allow_object')

np.array(рдбреЗрдЯрд╛, allow_object_dtype=True)

np.array_create_allow_object_dtype() рдХреЗ рд╕рд╛рде:
рдПрдирдкреА.рд╕рд░рдгреА (рдбреЗрдЯрд╛)
~~~

рд╕рднреА рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдирд╛рдордХрд░рдг рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдл рд░рд╛рд╕реНрддрд╛ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рд╕рдордп рдХреЗ рд▓рд┐рдП)ред

рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ matplotlib рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ:

with np.forbid_ragged_arrays_immediately():
    np.array(data)

рдЪреВрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ dtype рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рддреНрд░реБрдЯрд┐ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рд▓рдВрдмрд┐рдд рдмрд╣рд┐рд╖реНрдХрд░рдг рдХрд╛ рдХреЛрдИ рдкреНрд░рддреНрдпрд╛рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕реЗ рдереЛрдХ рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 1.18 рдореЗрдВ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдлрд┐рдХреНрд╕ рднреА рд╣рдЯрд╛ рджрд┐рдП рдЧрдП рдереЗ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред @mattip рдПрдХ рдЕрдзрд┐рдХ рд▓рдХреНрд╖рд┐рдд рдкреНрд░рддреНрдпрд╛рд╡рд░реНрддрди рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА рдЬрдм рддрдХ рдХрд┐ рд╣рдо рддрдп рдирд╣реАрдВ рдХрд░рддреЗ рдХрд┐ рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдордкреАрдПрд▓ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЬрдЧрд╣реЛрдВ рдкрд░ рдЗрд╕реЗ рдорд╛рд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдкреБрдирд░реНрдЧрдарди рдХреЗ рд╕рд╛рде - рдПрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдХреЛрдб рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ ...)
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @timhoffm рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдкреАрдЖрдИ with np.forbid_ragged_arrays_immediately: рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреВрд░реНрд╡ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрдЧрд░ np.array(..., allow_object=True).dtype == object рдмрдврд╝рд╛рдПрдВ) рдЬрдмрдХрд┐ рд╡рд┐рдкрд░реАрдд ( try: with np.forbid: ... except ValueError: ... ) рдХрдо рдХреБрд╢рд▓ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдЕрднреА рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд░рдгреА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдПрдХ рд╕реАрдПрдо (рд╕рд┐рд░реНрдл "рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдмрд╣рд┐рд╖реНрдХрд░рдг рдЕрд╡рдзрд┐ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ") рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

(рдлрд┐рд░ рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдмрд╛рдд рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред)

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

  1. object рдФрд░ "allow ragged" ред рдпрджрд┐ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реИ ( Decimal рдХрд╣реЗрдВ) рддреЛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА/рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди dtype=object рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ
  2. рдирдП рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдСрдкреНрдЯ-рдЗрди рдХрд░рдиреЗ рдпрд╛ рдкреБрд░рд╛рдиреЗ (рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЪреЗрддрд╛рд╡рдиреА рдХреЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдСрдкреНрдЯ-рдЗрди рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдореВрд▓ рд░реВрдк рд╕реЗ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ (рд╕рдВрднрд╡рддрдГ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ) рдпрд╣ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ рдЬреЛ рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВ?

рдЕрдВрдд рдореЗрдВ, рд╣рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ рдХреИрд╕реЗ рд░рдЯрдирд╛ рд╣реИ :)ред ndmin рдХрдо рд╕реЗ рдХрдо рд░реИрдЧреНрдб рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЭрдВрдбреЗ рдореЗрдВ рд░рдЯрдирд╛ рдХрд╛ рдПрдХ рдФрд░ рд▓рдХреНрд╖реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рд▓рдВрдмрд┐рдд рдмрд╣рд┐рд╖реНрдХрд░рдг рдХрд╛ рдХреЛрдИ рдкреНрд░рддреНрдпрд╛рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕реЗ рдереЛрдХ рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 1.18 рдореЗрдВ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдлрд┐рдХреНрд╕ рднреА рд╣рдЯрд╛ рджрд┐рдП рдЧрдП рдереЗ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред @mattip рдПрдХ рдЕрдзрд┐рдХ рд▓рдХреНрд╖рд┐рдд рдкреНрд░рддреНрдпрд╛рд╡рд░реНрддрди рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА рдЬрдм рддрдХ рдХрд┐ рд╣рдо рддрдп рдирд╣реАрдВ рдХрд░рддреЗ рдХрд┐ рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред

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

рдЕрднреА рддрдХ рд╡рд╛рдкрд╕ рди рдЖрдиреЗ рдХрд╛ рддрд░реНрдХ - рдЬрдмрдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рд╣реИ, рд╣рдо рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рд╕реАрдЖрдИ рд░рди рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдХреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреИрд╕рд╛ рджрд┐рдЦреЗрдВрдЧреЗ

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

рдФрд░ рдХрдо рд╕реЗ рдХрдо Matplotlib рдХрд╛ CI pip install --pre рд╡рд┐рд░реБрджреНрдз рдЪрд▓ рд░рд╣рд╛ рд╣реИ рди рдХрд┐ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛

рдФрд░ рдХрдо рд╕реЗ рдХрдо Matplotlib рдХрд╛ CI pip install --pre рд╡рд┐рд░реБрджреНрдз рдЪрд▓ рд░рд╣рд╛ рд╣реИ рди рдХрд┐ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд╛рдд рдХреЗ рдкрд╣рд┐рдпреЛрдВ рд╕реЗ рдЦреАрдВрдЪ рд░рд╣рд╛ рд╣реИред рдкрд░рд┐рд╡рд░реНрддрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 1.18.0rc1 рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рд╡рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк PyPI рд╕реЗ --pre рд╕рд╛рде рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдирд╣реАрдВ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ @timhoffm рдХреЗ рдкрд╣рд▓реЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдЖ (рдФрд░ рд╡рд┐рдЪрд╛рд░ рд╢рд╛рдпрдж рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдЕрдиреНрдп рд╕рдордп рдкрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ): рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рд╕рд┐рдВрдЧрд▓рдЯрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдЬрдм рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ dtype рддрд░реНрдХ array , рдлрд╝рдВрдХреНрд╢рди рдХреЛ 1-рдбреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд░рдгреА рдмрдирд╛рдХрд░ рд░реИрдЧреНрдб-рдЖрдХрд╛рд░ рдХреЗ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ dtype=None рдХреЗ рдкреВрд░реНрд╡-рдПрдирдИрдкреА-34 рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд░реИрдЧреНрдб-рдЖрдХрд╛рд░ рдХрд╛ рдЗрдирдкреБрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ dtype рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рдореВрд▓реНрдп рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ( None рдпрд╛ object ), рддреЛ рдЗрдирдкреБрдЯ рд░реИрдЧреНрдб-рдЖрдХрд╛рд░ рдХрд╛ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдореВрд▓реНрдпрд╣реНрд░рд╛рд╕ рдЪреЗрддрд╛рд╡рдиреА рджреА рдЬрд╛рддреА рд╣реИред NumPy рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд░реИрдЧреНрдб-рдЖрдХрд╛рд░ рдХреЗ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП dtype=object рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╣рдо "рдСрдмреНрдЬреЗрдХреНрдЯ рдПрд░реЗ" рдХреА рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ "рд░реИрдЧреНрдб рдПрд░реЗ" рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджреЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рд╣рдо рд░реИрдЧреНрдб рдРрд░реЗ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдРрд░реЗ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдХрднреА-рдХрднреА рд╣рдо рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдРрд░реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рд░реИрдЧреНрдб-рд╢реЗрдкреНрдб рдЗрдирдкреБрдЯ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП (cf. рдЖрдЗрдЯрдо 1 рдореЗрдВ @seberg рдХреА рдЕрдВрддрд┐рдо рдЯрд┐рдкреНрдкрдгреА), рдорд╛рди рд▓реАрдЬрд┐рдП f1 , f2 , f3 рдФрд░ f4 Fraction рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рдФрд░ рдореИрдВ Fraction s рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрд░реЗрдЬрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рд░реИрдЧреНрдб рдРрд░реЗ рдмрдирд╛рдиреЗ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдЧрд▓рддреА рд╕реЗ a = np.array([f1, f2, [f3, f4]], dtype=object) рд▓рд┐рдЦрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ _want_ рдХрд┐ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрди рд╕рднреА рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ NEP 34 рд╣реИред NEP 34 рдХреЗ рд╕рд╛рде, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд▓рдВрдмрд╛рдИ 3 рдХреА 1-d рд╕рд░рдгреА рдмрдирд╛рдПрдЧреАред

рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдПрдХ рдирдпрд╛ рдХреАрд╡рд░реНрдб рддрд░реНрдХ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ @timhoffm рдХрд╛ рджреВрд╕рд░рд╛ рд╕реБрдЭрд╛рд╡, рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИред рдЬрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рдо рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ "рдлреБрдЯ рдЧрди" рд╣реИ рдЬрд╣рд╛рдВ рд░реИрдЧреНрдб рдЗрдирдкреБрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ 1-рдбреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рддрдм рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдЬрдм dtype=None рдХреЛ array рдореЗрдВ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреБрд░рд╛рдиреЗ рдкрд░реЗрд╢рд╛рдиреА рднрд░реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ dtype=None рдХреЛ dtype=<special-value-that-enables-ragged-handling> рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдПрдкреАрдЖрдИ рдореЗрдВ рд╕рд░рд▓ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ рдЬрд┐рд╕реЗ рд╕рдордЭрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдХреНрдпрд╛ рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреА рдЬрд░реВрд░рдд рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд░реИрдЧреНрдб-рдЖрдХрд╛рд░ рдХреЗ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП dtype=object рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╣рдо "рдСрдмреНрдЬреЗрдХреНрдЯ рдПрд░реЗ" рдХреА рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ "рд░реИрдЧреНрдб рдПрд░реЗ" рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджреЗрдВрдЧреЗред

рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ, рд╢рд╛рдпрджред рдпрд╣ рдмрддрд╛рдирд╛ рднреА рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ NumPy рдореЗрдВ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ "рд░реИрдЧреНрдб рдРрд░реЗ" рдЕрд╡рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рд╣реИ ред рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдо рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдЯреНрд░реИрдХрд░ рдпрд╛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ "рд░реИрдЧреНрдб" рдЦреЛрдЬреЗрдВ), рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдбреАрд╡рд╛рдИрдПрдирдбреА рдФрд░ рдПрдХреНрд╕рдПрдирдбреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рдордиреЗ рдХреЗрд╡рд▓ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╛рдВрд╢ "рд╣рдо np.array([1, [2, 3]]) рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЯреНрд░рд┐рдк рдХрд░рддрд╛ рд╣реИ"ред рдЗрд╕рд▓рд┐рдП рдПрдХ рдирдИ рдПрдкреАрдЖрдИ рдЪреАрдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ "рд░реИрдЧреНрдб рдПрд░реЗрдЬрд╝" рдореЗрдВ рдкрдХрд╛рдирд╛ рдЕрддреНрдпрдзрд┐рдХ рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдмрдврд╝рд╛рд╡рд╛ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рддреЛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рдЬреЛ рдХреБрдЫ рднреА dtype=some_workaround рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЙрд╕рдХреЗ рдирд╛рдордХрд░рдг рдореЗрдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджреЗрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдо рд░рд╛рдп np.array(vals, dtype=special) рдЕрдиреБрдорддрд┐ рджреЗрдХрд░ рдмрд╣рд┐рд╖реНрдХрд░рдг (рд╢рд╛рдпрдж рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ) рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХрддреНрд░рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИ рдЬреЛ рдПрдирдИрдкреА 34 рд╕реЗ рдкрд╣рд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧреАред рдореИрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рд╕рд┐рдВрдЧрд▓рдЯрди рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрдкрдпреЛрдЧ special = getattr(np.special, None) рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдЕрдм рд╣рдореЗрдВ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдирд╛рдо рдХрд╣рд╛рдВ рд░рдЦрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕реЗ рдХрд╣рд╛рдВ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╢рд╛рдпрдж never_fail рдпрд╛ guess_dimensions ? рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдЗрд╕рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдореИрдВ рдЗрд╕реЗ np рдмрдЬрд╛рдп рдХреБрдЫ рдЕрдиреНрдп рдЖрдВрддрд░рд┐рдХ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд▓рдЯрдХрд╛рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд╢рд╛рдпрдж _ рдХреЗ рд╕рд╛рде рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдирд┐рдЬреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдЧреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдПрдирдИрдкреА 34 рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдХрд░рдирд╛ рд╣реИ, рдлрд┐рд░ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдкрд░ рдЪрд░реНрдЪрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдХреБрдЫ рд░рд┐рдкреЛрд░реНрдЯреЗрдВ рднреА рдЖрдИ рд╣реИрдВ ( == рдФрд░ operator.mod рдХрдо рд╕реЗ рдХрдо)ред рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЙрд╕ рд░рд╛рдЬреНрдп рдХреЛ рд╕рд░рдгреА рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рд▓рдЧрднрдЧ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рд╢рд╛рдпрдж рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рдСрдкрд░реЗрдВрдб рдореЗрдВ рд╕реЗ рдПрдХ рдПрдХ numpy array рд╣реИред рддреЛ рд╕рдВрднрд╡рддрдГ рдПрдХ рд╕реБрд╕реНрдкрд╖реНрдЯ рд╕рд░рдгреА рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдХреЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдХреЛрдИ operator.mod рдЙрджрд╛рд╣рд░рдг рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдЬрд╣рд╛рдВ рддрдХ == рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИ, рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╡рд╣ np.array(vals, dtype=object) == vals рдЬреИрд╕рд╛ рдХреБрдЫ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЬрд╣рд╛рдВ vals=[1, [2, 3]] (рдХреЛрдб рдХреЛ рдкреИрд░рд╛рдлреНрд░реЗрд╢ рдХрд░рдирд╛), рдЗрд╕рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рджрд╛рдИрдВ рдУрд░ рд╕рд░рдгреА рдмрдирд╛рдирд╛ рд╣реИ рдкрдХреНрд╖ред

рдХрдИ scipy рд╡рд┐рдлрд▓рддрд╛рдПрдВ np.array([0.25, np.array([0.3])]) рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╕реНрдХреЗрд▓рд░ рдФрд░ ndarray рдХреЛ shape==(1,) рд╕рд╛рде рдорд┐рд▓рд╛рдиреЗ рд╕реЗ рдЖрдпрд╛рдо рдХреА рдЦреЛрдЬ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧреА рдФрд░ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдРрд░реЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрдЧрд╛ред xref gh-15075

рдХреНрдпрд╛ рдХреЛрдИ operator.mod рдЙрджрд╛рд╣рд░рдг рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рджреЗрдЦрд╛ рдХрд┐ @jbrockmendel рдХреЗ рдкрдВрдбреЛрдВ рдкреАрдЖрд░ рдореЗрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рддрдм рд╕реЗ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ (рдЕрдм рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рд╕реНрдкрд╖реНрдЯ operator.mod рдирд╣реАрдВ рджреЗрдЦреЗрдВ)ред

рдЬрд╣рд╛рдВ рддрдХ == рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИ, рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╡рд╣ np.array(vals, dtype=object) == vals рдЬреИрд╕рд╛ рдХреБрдЫ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЬрд╣рд╛рдВ vals=[1, [2, 3]] (рдХреЛрдб рдХреЛ рдкреИрд░рд╛рдлреНрд░реЗрд╢ рдХрд░рдирд╛), рдЗрд╕рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рджрд╛рдИрдВ рдУрд░ рд╕рд░рдгреА рдмрдирд╛рдирд╛ рд╣реИ рдкрдХреНрд╖ред

рдЙрд╕ рд╕рдордп рдпрд╣ np.array(vals, dtype=object) == np.array(vals, dtype=object) рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╣рдЯрд╛ рджреЗрдВ :)

@mattip рдиреЗ рд▓рд┐рдЦрд╛:

рдореИрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рд┐рдВрдЧрд▓рдЯрди рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реЗрд╖ = getattr (np.special, рдХреЛрдИ рдирд╣реАрдВ) рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдирдХрд╛ рдХреЛрдб рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдпрд╣ рдореБрдЭреЗ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИред

рдЕрдм рд╣рдореЗрдВ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдирд╛рдо рдХрд╣рд╛рдВ рд░рдЦрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕реЗ рдХрд╣рд╛рдВ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╢рд╛рдпрдж never_fail рдпрд╛ guess_dimensions ? рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдЗрд╕рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдПрдирдкреА рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рдЕрдиреНрдп рдЖрдВрддрд░рд┐рдХ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд▓рдЯрдХрд╛рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд╢рд╛рдпрдж _ рдХреЗ рд╕рд╛рде рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдирд┐рдЬреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред

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

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдирд╛рдо рдирд┐рдЬреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред _private_ рдФрд░ _public_ рдХреА рдХрд┐рд╕реА рднреА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рдПрдХ _public_ рд╡рд╕реНрддреБ рд╣реЛрдЧреАред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд┐рд░рд╛рд╕рддреА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, array(data) рдХреЛ array(data, dtype=legacy_auto_dtype) рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдХрд░ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрджреНрдпрддрди рдПрдирдИрдкреА рд╕рдордЭрд╛рдПрдЧрд╛ рдХрд┐ рд╡рд┐рд░рд╛рд╕рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╡рд╕реНрддреБ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд┐рдЬреА рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ NumPy рдореЗрдВ рд░рд╣реЗрдЧреАред рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореЗрд░реА рд╕рдордЭ рдЧрд▓рдд рд╣реИ рдХрд┐ рд╕рдВрд╢реЛрдзрд┐рдд рдПрдирдИрдкреА 34 рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ/рдирд┐рдЬреА рдХреЗ @WarrenWeckesser рдХреЗ рд╡рд┐рд╡рд░рдг рд╕реЗ рд╕рд╣рдордд; рдпрд╛ рддреЛ рдпрд╣ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реИ, рдпрд╛ рдЗрд╕реЗ NumPy рдХреЗ рдмрд╛рд╣рд░ рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреБрди: рдирд╛рдо: рдХреГрдкрдпрд╛ рдПрдХ рдРрд╕рд╛ рдирд╛рдо рдЪреБрдиреЗрдВ рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реЛред "рд╡рд┐рд░рд╛рд╕рдд" рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рд▓рдЧрднрдЧ рдХрднреА рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред

рдХреГрдкрдпрд╛ рдПрдХ рдирд╛рдо рдЪреБрдиреЗрдВ рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

auto_object , auto_dtype , auto ?

рдХреБрдЫ рджреЗрд░ рдЬреЛрд░ рд╕реЗ рд╕реЛрдЪрдирд╛...

рдпрд╣ рд╡рд╕реНрддреБ рдХреНрдпрд╛ рдХрд░рддреА рд╣реИ?

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЬрдм NumPy рдХреЛ рдПрдХ рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрд╛рдж рдХреА рд▓рдВрдмрд╛рдИ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреА рд▓рдВрдмрд╛рдИ рдирд┐рдпрдорд┐рдд nd рд╕рд░рдгреА рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ NumPy object рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдПрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реНрддрд░ рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдВрдЧреЗ рдЬрд╣рд╛рдВ рдЖрдХрд╛рд░ рдЕрд╕рдВрдЧрддрддрд╛ рд╣реЛрддреА рд╣реИред рдкрд╛рдпрдерди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, array([[1, 2], [1, 2, 3]]) рдХрд╛ рдЖрдХрд╛рд░ (2,) , np.array([[1, 2], [3, [99]]]) рдХрд╛ рдЖрдХрд╛рд░ (2, 2) , рдЖрджрд┐ред NEP 34 рдХреЗ рд╕рд╛рде, рд╣рдо рдЙрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╣рдЯрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ "рд░реИрдЧреНрдб" рдЗрдирдкреБрдЯ рд╡рд╛рд▓реА рд╕рд░рдгреА рдЕрдВрддрддрдГ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧреА, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рди рд╣реЛред рд╣рдо рдЬрд┐рд╕ рд╡рд┐рд╢реЗрд╖ рдореВрд▓реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдкреБрд░рд╛рдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред

рдХрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд╛рдо рдХреНрдпрд╛ рд╣реИ? 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)

рдореИрдВ рдбреАрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдореВрд▓реНрдп рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдирдИрдкреА 34 рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреВрдВрдЧрд╛ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ scipy рдХреЛ scipy/scipy#11310 рдФрд░ scipy/scipy#11308 рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреНрд░рд╣рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

gh-15119 рдХреЛ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдиреЗ NEP рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдЕрдЧрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ 1.19 рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдкрд░ рдЕрдиреБрд╡рд░реНрддреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ рдХреА рдереАред рдФрд░ рдореБрдЭреЗ рдХрдо рд╕реЗ рдХрдо рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рдерд╛ рдХрд┐ рдЪрд░реНрдЪрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдкреНрд░рдореБрдЦ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереАрдВред
рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдпрд╣ рдЕрднреА рднреА рдкрд╛рдВрдбрд╛, рдореИрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм, рдЖрджрд┐ рдХреЗ рдореБрджреНрджреЛрдВ рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ 1.19.x рд░рд┐рд▓реАрдЬ рдЙрдореНрдореАрджрд╡рд╛рд░ рдЪрдХреНрд░ рдХреЗ рджреМрд░рд╛рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реЛрдЧрд╛ред

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