Numpy: рдбрд┐рд╡реАрдЬрди-рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░ рдЙрдард╛рддрд╛ рд╣реИ рддреНрд░реБрдЯрд┐, рдЕрд▓рдЧ рдбрд┐рд╡реАрдЬрди рдФрд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛рд░реНрдп

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдлрд╝рд░ре░ 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: numpy/numpy

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рдПрдХ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдЗрд╕рдХреА рдЦреЛрдЬ рдХреА рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ...

рдпрд╣ рдХрд╛рдо:

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 рдХрд╛ рдХреЛрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИ рдЬреЛ рджреЛ рдкреВрд░реНрдгрд╛рдВрдХ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдФрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддрд╛ рд╣реИред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╛рдпрдерди 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 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

рдпреЗ рд╕рд╣реА рд╣реИред

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

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

perezpaya picture perezpaya  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thouis picture thouis  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

qualiaa picture qualiaa  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

keithbriggs picture keithbriggs  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ