рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рд╢реНрди рд╕реЗ рдХрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ "рджрд░реНрд╢рди" рдкреНрд░рд╢реНрди рдХрд╛ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдлреНрд░реЛрдмреЗрдирд┐рдпрд╕ рдиреЙрд░реНрдо рд╡реЗрдХреНрдЯрд░ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рд╕реНрд░реЛрдд: рд╡реЛрд▓реНрдлреНрд░рд╛рдо
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╕реБрдиреНрди рдореЗрдВ рдлреНрд░реЛрдмреЗрдирд┐рдпрд╕ рдиреЙрд░реНрдо рд╡реИрдХреНрдЯрд░ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
import numpy as np
a = np.random.rand(10, 1)
b = np.squeeze(a)
print(np.linalg.norm(a, 'fro'))
print(np.linalg.norm(b, 'fro'))
рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк:
1.7594677278427366
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
//anaconda3/lib/python3.7/site-packages/numpy/linalg/linalg.py in norm(x, ord, axis, keepdims)
2515 try:
-> 2516 ord + 1
2517 except TypeError:
TypeError: can only concatenate str (not "int") to str
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
<ipython-input-18-2ace847024a5> in <module>
3 b = np.squeeze(a)
4 print(np.linalg.norm(a, 'fro'))
----> 5 print(np.linalg.norm(b, 'fro'))
<__array_function__ internals> in norm(*args, **kwargs)
//anaconda3/lib/python3.7/site-packages/numpy/linalg/linalg.py in norm(x, ord, axis, keepdims)
2516 ord + 1
2517 except TypeError:
-> 2518 raise ValueError("Invalid norm order for vectors.")
2519 absx = abs(x)
2520 absx **= ord
ValueError: Invalid norm order for vectors.
рдпрд╣ 'fro'
kwarg рдХреЗ рдкреНрд░рдмрдВрдзрди рдореЗрдВ рдПрдХ рдмрдЧ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
>>> print(np.linalg.norm(b))
1.7547099704258247
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдлреНрд░реЛрдмреЗрдирд┐рдпрд╕ рдорд╛рдирджрдВрдб рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрдм ord
kwarg рдХреЛрдИ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
xref gh-14719 рдФрд░ gh-14215: рд╣рдордиреЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдХрднреА рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝реЗ рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдХреЛрдИ рдмрдбрд╝рд╛ рдкреНрд░рддрд┐рд░реЛрдз рдирд╣реАрдВ рдерд╛, рддреЛ рдХреБрдЫ рдерд╛ред рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рддреЛ рдореБрджреНрджрд╛ рдпрд╣ рддрдп рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдБ рдХрд╣рд╛рдБ рдЬрд╛рдирд╛ рд╣реИ ...
рдЬреИрд╕рд╛ рдХрд┐ рд░реЙрд╕ рдиреЗ рдореБрдЭреЗ рдмрддрд╛рдпрд╛, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдореБрджреНрджрд╛/рдкреАрдЖрд░ рдХреЗрд╡рд▓ рдореВрд░реНрдд рд░реВрдк рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдФрд░ рдпрд╣ "fro"
рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдмрдЧ рд╣реИред
kwarg рд╣реИрдВрдбрд▓рд┐рдВрдЧ (рдФрд░ рд╕рд╛рде рдореЗрдВ рдкрд░реАрдХреНрд╖рдг) рдореЗрдВ рдмрдЧ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ! рдЕрдЪреНрдЫрд╛ рдХреИрдЪ @TNonet
рдЪреВрдВрдХрд┐ рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдореБрджреНрджрд╛ рд╣реИ, рдХреНрдпрд╛ рдЙрдЪрд┐рдд рдкрд░реАрдХреНрд╖рдг рдФрд░ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ?
(рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдореБрдЭреЗ numpy рд░реЗрдкреЛ рдХреЛ рдХреНрд▓реЛрди рдХрд░рдирд╛ рдерд╛ рдФрд░ setup.py рдЪрд▓рд╛рдирд╛ рдерд╛, рддреЛ рдореИрдВ рдпрд╣ рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЬрдм рдореИрдВ numpy рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдХрд┐рд╕ numpy рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ?)
рдореИрдВ рддрд░реНрдХ рджреВрдВрдЧрд╛ рдХрд┐ рдЕрдЧрд░ ord 'fro' рд╣реИ, рддреЛ рдиреАрдЪреЗ рдХреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ 2512-14 рд╣реИрдВред
рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:
if ((ord is None) or
(ord in ('f', 'fro')) or
(ord == 2 and ndim == 1)):
рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╣рд░ рдХреЛрдИ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реИ рдХрд┐ nth рдСрд░реНрдбрд░ рд╕рд░рдгреА рдореЗрдВ рдПрдХ Forbenious рдорд╛рдирджрдВрдб рд╣реИ рдЬреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рдореЗрдВ рдереЛрдбрд╝реА рдФрд░ рдиреАрдЪреЗ рд╣реИ - рдпрджрд┐ рдЖрдк рдореВрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рддреНрд░реБрдЯрд┐ рд╕реЗ рдЯреНрд░реЗрд╕рдмреИрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдорд╛рдирдЬрдирдХ рдмрд┐рдЯ рдвреВрдВрдврдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬреИрд╕рд╛ рдХрд┐ #14719 рдФрд░ #14215 рдореЗрдВ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ,> 2 рдЖрдпрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИ - рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕ рдкреАрдЖрд░ рдХреЛ рдХреНрд╡рд╛рд░реНрдЧ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рдмрдЧ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреБрди: рдкрд░реАрдХреНрд╖рдг/рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди: NumPy рдХреЗ рдпреЛрдЧрджрд╛рди рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░реАрдХреНрд╖рдг рдХрд╣рд╛рдВ рдЙрдкрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк numpy/linalg/tests/test_linalg.py
рдореЗрдВ linalg рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреА рдорджрдж рд╣реЛрдЧреА!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рдореЗрдВ рдереЛрдбрд╝реА рдФрд░ рдиреАрдЪреЗ рд╣реИ - рдпрджрд┐ рдЖрдк рдореВрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рддреНрд░реБрдЯрд┐ рд╕реЗ рдЯреНрд░реЗрд╕рдмреИрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдорд╛рдирдЬрдирдХ рдмрд┐рдЯ рдвреВрдВрдврдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬреИрд╕рд╛ рдХрд┐ #14719 рдФрд░ #14215 рдореЗрдВ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ,> 2 рдЖрдпрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИ - рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕ рдкреАрдЖрд░ рдХреЛ рдХреНрд╡рд╛рд░реНрдЧ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рдмрдЧ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреБрди: рдкрд░реАрдХреНрд╖рдг/рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди: NumPy рдХреЗ рдпреЛрдЧрджрд╛рди рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░реАрдХреНрд╖рдг рдХрд╣рд╛рдВ рдЙрдкрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк
numpy/linalg/tests/test_linalg.py
рдореЗрдВ linalg рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреА рдорджрдж рд╣реЛрдЧреА!