Numpy: np.copy (рдирдХрд╛рдмрдкреЛрд╢ рд╕рд░рдгреА) рдореЗрдВ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 26 рдЬреВрди 2013  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: numpy/numpy

.... рдЬрд╣рд╛рдБ "рдЕрдирдкреЗрдХреНрд╖рд┐рдд" рдХрд╛ рдЕрд░реНрде рд╣реИ _ рдЖрдИ_ рдиреЗ рдЗрд╕рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХреА рдереАред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдлрд┐рдХреНрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рд╢рд╛рдпрдж рдореБрдЭреЗ рдпрд╣ рдорд╣рд╕реВрд╕ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рдВрдЯрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ np.ma рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЙрдЪрд┐рдд рд╣реИ:

In [100]: x = np.ma.ones(5)

In [101]: x.mask = [False,False,True,False,False]

In [102]: np.copy(x)
Out[102]: array([ 1.,  1.,  1.,  1.,  1.])

In [103]: np.ma.copy(x)
Out[103]:
masked_array(data = [1.0 1.0 -- 1.0 1.0],
             mask = [False False  True False False],
       fill_value = 1e+20)

In [104]: np.__version__
Out[104]: '1.8.0.dev-074a40c'

рдореИрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдХреА рдЙрдореНрдореАрдж рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╡рд░реАрдпрддрд╛ рдХреНрд░рдо рдореЗрдВ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ:

  • np.copy(x) рдПрдХ рдирдХрд╛рдмрдкреЛрд╢ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ x рдПрдХ рдирдХрд╛рдмрдкреЛрд╢ рд╕рд░рдгреА рд╣реИ)
  • np.copy(x) рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд░рдгреА рдХреЛ рдЕрдирдорд╛рд╕реНрдХрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдлрд┐рд░ рдКрдкрд░ рдХреЗ рд╕рдорд╛рди рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ
  • np.copy(x) рдПрдХ рдЕрдкрд╡рд╛рдж рдЙрдард╛рддрд╛ рд╣реИ
  • np.copy(x) [1,1,nan,1,1] (рдпрд╣ рд╢рд╛рдпрдж рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ)

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

рдЕрднреА рднреА 1.9-рдбреЗрд╡реЗрд▓ рдореЗрдВ рдЦреБрд▓рд╛ рд╣реИ

рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд░рдг рдорд╛рд╕реНрдХрд┐рдВрдЧ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдореЗрдВ subok=True рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП np.copy рдХреЗ рддрд░реНрдХ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?
рд╕реЗ:

return array(a, order=order, copy=True)

рд╕реЗрд╡рд╛:

return array(a, order=order, subok=True, copy=True)

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

рдореИрдВ subok рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ np.copy рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд╣реАрдВ рд╣реВрдВ рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ:

  • .copy() рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • np.array(a, subok=True) рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдпрд╛рдВ)

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

рд╡реИрд╕реЗ рднреА, @jjhelmus , рдХреНрдпреЛрдВ рдирд╣реАрдВ рдПрдХ рддреНрд╡рд░рд┐рдд рдкреАрдЖрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рджреВрд╕рд░реЗ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ?

@shoyer : np.copy рдХреЛ рд╕рдВрднрд╡рддрдГ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдмрддрдЦ рд╕рд░рдгреА рд╕рдорд░реНрдерди рдХреЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░, рд╣рд╛рд▓рд╛рдВрдХрд┐ - рдПрдХ рдмрддрдЦ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ np.copy
рдФрд░ np.array рдХреЛ рд╢рд╛рдпрдж рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд╢рд╛рдпрдж рдпрд╣ рд╕рд┐рд░реНрдл рдлреЛрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
arr.copy?

рдереВ рдкрд░, 15 рдЕрдХреНрдЯреВрдмрд░, 2015 рдХреЛ рд╕реБрдмрд╣ 7:00 рдмрдЬреЗ, рдорд╛рд░реНрдЯрди рд╡реИрди рдХреЗрд░реНрдХрд╡рд┐рдЬреНрдХ <
рд╕реВрдЪрдирд╛рдПрдВ@github.com> рдиреЗ рд▓рд┐рдЦрд╛:

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

рд╡реИрд╕реЗ рднреА, @jjhelmus https://github.com/jjhelmus , рддреНрд╡рд░рд┐рдд рдкреАрдЖрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рддреЗ
рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рджреВрд╕рд░реЗ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ?

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/numpy/numpy/issues/3474#issuecomment -148395201

рдирдерд╛рдирд┐рдПрд▓ рдЬреЗред рд╕реНрдорд┐рде - http://vorpus.org

рд╣рд╛рдВ, рдореИрдВ np.copy рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдмрддрдЦ рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдХреЙрдкреА рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдлрд┐рд░ рднреА рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ subok рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдФрд░ рдЕрдЧрд░ рдпрд╣ рдореМрдЬреВрдж рд╣реИ рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ __copy__ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЖрдкреА рдЪрд░реНрдЪрд╛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдкрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
18 рдЕрдХреНрдЯреВрдмрд░ 2015 рдХреЛ 7:37 рдмрдЬреЗ, "рдЬреЛрдирд╛рдерди рдЬреЗред рд╣реЗрд▓реНрдорд╕" рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдкреАрдЖрд░ # 6509 https://github.com/numpy/numpy/pull/6509 рдЬреЛ рдПрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
_Fubse_ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ _subok_ рдкреИрд░рд╛рдореАрдЯрд░ред рдореИрдВ рд╣реВрдБ
рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рд╕реЗ рд╡рд┐рд╖рдп рдкрд░ рдХреБрдЫ рдЪрд░реНрдЪрд╛ рдЦреБрд▓ рдЬрд╛рдПрдЧреАред рдпрдХреАрди рдирд╣реАрдВ рддреЛ рдпрд╣реА рд╣реЛрдЧрд╛
рдЖрдорддреМрд░ рдкрд░ рдкреАрдЖрд░, рд╕рдорд╕реНрдпрд╛ рдпрд╛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдкрд░ рдЬрдЧрд╣ рд▓реЗрддрд╛ рд╣реИред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/numpy/numpy/issues/3474#issuecomment -149080511

рдореИрдВ рдХрд▓ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд╕реВрдЪреА рдХреЛ рдПрдХ рдИрдореЗрд▓ рднреЗрдЬреВрдВрдЧрд╛ред

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