рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рдПрдХ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдЗрд╕рдХреА рдЦреЛрдЬ рдХреА рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ...
рдпрд╣ рдХрд╛рдо:
import numpy as np
a = np.array([1, 2, 3])
a = a / 4
рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрдард╛рддрд╛ рд╣реИ:
import numpy as np
a = np.array([1, 2, 3])
a /= 4
рдЕрд░реНрдерд╛рддреН:
TypeError: No loop matching the specified signature and casting
was found for ufunc true_divide
рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЙрдирд╕реЗ рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВред
рд╕реБрдиреНрди рд╕рдВрд╕реНрдХрд░рдг 1.14.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╛рдпрдерди 3 рдкрд░ рд╣реИрдВред рдпрд╣ рдкрд╛рдпрдерди 3 рдкрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред a / 4
рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╕рд░рдгреА рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдПрдХ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╕рд░рдгреА рд╣реЛрдЧрд╛ред рдЬрдм рдЖрдк рдЙрд╕ рдкрд░рд┐рдгрд╛рдо рдХреЛ a = a / 4
рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдкреБрди: рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдареАрдХ рд╣реИред рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреЛрдб рдХреЛ a = np.true_divide(a, 4)
рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдирдпрд╛ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╕рд░рдгреА рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ a
рдирд╛рдо рдкреБрди: рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИред
рдЬрдм рдЖрдк рдЗрди-рдкреНрд▓реЗрд╕ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ true_divide
ufunc рдХреЛ рдореМрдЬреВрджрд╛ a
рдкреВрд░реНрдгрд╛рдВрдХ рд╕рд░рдгреА рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ: np.true_divide(a, 4, out=a)
ред true_divide
рдХрд╛ рдХреЛрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИ рдЬреЛ рджреЛ рдкреВрд░реНрдгрд╛рдВрдХ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдФрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддрд╛ рд╣реИред
рд╕реНрдкрд╖реНрдЯ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдиреАрдЪреЗ рдиреЗ рдореБрдЭреЗ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХреА:
>>> a = [1 ,2, 3]
>>> b = a
>>> id(a) == id(b)
True
>>> a += [4, 5, 6] # list object is changed, no new object created
>>> id(a) == id(b)
True
>>> a = a + [4, 5, 6] # new object created, and assigned to `a`
>>> id(a) == id(b)
False
рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреВрдВ, рддреЛ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ +=
рдХреЗ рд╕рд╛рде рдХреЛрдИ рдирдИ рд╡рд╕реНрддреБ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдпрд╣ out=a
ред
рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╕рд░рдгреА рдирд┐рд░реНрдорд╛рдг рдкрд░ dtype=float
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред
рдпреЗ рд╕рд╣реА рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╛рдпрдерди 3 рдкрд░ рд╣реИрдВред рдпрд╣ рдкрд╛рдпрдерди 3 рдкрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред
a / 4
рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╕рд░рдгреА рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдПрдХ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╕рд░рдгреА рд╣реЛрдЧрд╛ред рдЬрдм рдЖрдк рдЙрд╕ рдкрд░рд┐рдгрд╛рдо рдХреЛa = a / 4
рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдкреБрди: рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдареАрдХ рд╣реИред рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреЛрдб рдХреЛa = np.true_divide(a, 4)
рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдирдпрд╛ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╕рд░рдгреА рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗa
рдирд╛рдо рдкреБрди: рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИредрдЬрдм рдЖрдк рдЗрди-рдкреНрд▓реЗрд╕ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ
true_divide
ufunc рдХреЛ рдореМрдЬреВрджрд╛a
рдкреВрд░реНрдгрд╛рдВрдХ рд╕рд░рдгреА рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ:np.true_divide(a, 4, out=a)
редtrue_divide
рдХрд╛ рдХреЛрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИ рдЬреЛ рджреЛ рдкреВрд░реНрдгрд╛рдВрдХ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдФрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддрд╛ рд╣реИред