рдЬреИрд╕рд╛ рдХрд┐ рдЕрдВрдХ #5303 рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдорд╛рди-рд▓рдВрдмрд╛рдИ рдЕрдиреБрдХреНрд░рдо рд╡рд╛рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ dtype рдХреЗ рд╕рд░рдгрд┐рдпрд╛рдБ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрдХреНрд░рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд░рдгреА рддрддреНрд╡реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдкреНрд░рдореБрдЦ рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рд╡рд┐рд░рд╛рдо рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд▓рдВрдмреА рдмрд╣рд┐рд╖реНрдХрд░рдг рдЕрд╡рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдПрдХ рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ dtype рдХреЗ рд╕рд╛рде рд╕рд░рдгрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛред рд╢рд╛рдпрдж рдЗрд╕реЗ "рдСрдмреНрдЬреЗрдХреНрдЯрдПрд░реЗ" рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рд▓реЗрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ 1D рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд░рдгреА рдореЗрдВ рдПрдХ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реЛрдЧрд╛ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ "ndim" рдпрд╛ "рдЧрд╣рд░рд╛рдИ" рддрд░реНрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдХрд┐рддрдиреЗ рд╕реНрддрд░реЛрдВ рдХреЛ рд╕рд░рдгреА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 0 рд╣реЛрдЧрд╛ (рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рдмрд╛рд╣рд░реА рд╕реНрддрд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдпрджрд┐ рдЖрдпрд╛рдо рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЕрдкрд╡рд╛рдж рдЙрдард╛рдПрдЧрд╛ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдкрд░рд╕реНрдкрд░ рдЕрдирдиреНрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкреАрдЫреЗ рдХреА рдУрд░-рд╕рдВрдЧрддрддрд╛ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝реЗрдЧрд╛ред
рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
>>> arr = objectarray([((1, 2, 3), (4, 5, 6)), ((7, 8, 9), (10, 11, 12))])
>>> arr
array([((1, 2, 3), (4, 5, 6)), ((7, 8, 9), (10, 11, 12))], dtype=object)
>>> arr.shape
(2,)
>>> arr = objectarray([((1, 2, 3), (4, 5, 6)), ((7, 8, 9), (10, 11, 12))], depth=1)
>>> arr
array([[(1, 2, 3), (4, 5, 6)],
[(7, 8, 9), (10, 11, 12)]], dtype=object)
>>> arr.shape
(2, 2)
>>> arr = objectarray([((1, 2, 3), (4, 5, 6)), ((7, 8, 9), (10, 11, 12))], depth=2)
>>> arr
array([[[1, 2, 3],
[4, 5, 6]],
[[7, 8, 9],
[10, 11, 12]]], dtype=object)
>>> arr.shape
(2, 2, 3)
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд░рдгреА рдореЗрдВ рд╕рдорд╛рди рдЖрдХрд╛рд░ рдХреА рд╕реВрдЪрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╣реИ:
>>> a = empty((2,), dtype=np.object)
>>> a[:] = [[1,2,3],[4,5,6]]
>>> b = empty((2,3), dtype=np.object)
>>> b[:] = [[1,2,3],[4,5,6]]
рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ objectarray
рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рд╣рд╛рдВ, рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╡рд░реНрдмреЛрдЬрд╝ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд┐рдЪрд╛рд░ред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗрд╡рд▓ array
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдФрд░ рд╕реНрд╡рдпрдВ рдХреЛ ndarray
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░реЗрдЧрд╛ред
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рднреА рдпрд╛рдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ndmax
рддрд░реНрдХ рди рдХреЗрд╡рд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ ("_ рдСрдмреНрдЬреЗрдХреНрдЯ рдбреАрдЯрд╛рдЗрдк рдХреЗ рд╕рдорд╛рди-рд▓рдВрдмрд╛рдИ рдЕрдиреБрдХреНрд░рдо рдпреБрдХреНрдд рд╕рд░рдгреА рдмрдирд╛рдПрдВ_"), рдмрд▓реНрдХрд┐ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рднреА рд▓рд╛рдПрдЧрд╛ рд╡реЗ рдорд╛рдорд▓реЗ рдЬрд┐рдирдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдореЗрдВ рдЕрдВрддрд┐рдо рд╡рд╕реНрддреБ рдПрдХ рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИ (рдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рдВрдмрд╛рдИ рд╡рд╛рд▓реА рд╕реВрдЪреА рд╣реИ)ред рдпрд╣ рдкреНрд░рд╢реНрди рднреА рджреЗрдЦреЗрдВред
ndmax
рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдпрд╛ рдпреЛрдЬрдирд╛ рд╣реИ? рдореИрдВ рдЕрднреА рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:
np.array([*data, None])[:-1]
# This would look a lot cleaner:
np.array(data, ndmax=1)
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рднреА рдпрд╛рдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐
ndmax
рддрд░реНрдХ рди рдХреЗрд╡рд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ ("_ рдСрдмреНрдЬреЗрдХреНрдЯ рдбреАрдЯрд╛рдЗрдк рдХреЗ рд╕рдорд╛рди-рд▓рдВрдмрд╛рдИ рдЕрдиреБрдХреНрд░рдо рдпреБрдХреНрдд рд╕рд░рдгреА рдмрдирд╛рдПрдВ_"), рдмрд▓реНрдХрд┐ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рднреА рд▓рд╛рдПрдЧрд╛ рд╡реЗ рдорд╛рдорд▓реЗ рдЬрд┐рдирдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдореЗрдВ рдЕрдВрддрд┐рдо рд╡рд╕реНрддреБ рдПрдХ рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИ (рдпрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рдВрдмрд╛рдИ рд╡рд╛рд▓реА рд╕реВрдЪреА рд╣реИ)ред рдпрд╣ рдкреНрд░рд╢реНрди рднреА рджреЗрдЦреЗрдВред