Numpy: ndarray рдХреЛ collection.abc.Sequence рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рджрд┐рд╕ре░ 2012  ┬╖  49рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: numpy/numpy

@juliantaylor рдиреЗ рдПрдХ рдкрд╛рдВрдбрд╛ рдореБрджреНрджреЗ рдореЗрдВ

рдЯрд┐рдХрдЯ рд╕реЗ рдЙрджрд╛рд╣рд░рдг:

import numpy as np
import random
random.sample(np.array([1,2,3]),1)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/user1/py33/lib/python3.3/random.py", line 298, in sample
    raise TypeError("Population must be a sequence or set.  For dicts, use list(d).")
TypeError: Population must be a sequence or set.  For dicts, use list(d).

рдпрд╣ 3.3 рдкрд░ 1.7.0rc1.dev-3a52aa0 рдХреЗ рд╕рд╛рде, рдФрд░ 3.2 рдкрд░ 1.6.2 рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред
2.7 рдмреЗрд╢рдХ рдЕрдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИред

Cpython / Lib / random.py рд╕реЗ relavent рдХреЛрдб: 297

from collections.abc import Set as _Set, Sequence as _Sequence
def sample(self, population, k):
# ...
    if not isinstance(population, _Sequence):
        raise TypeError("Population must be a sequence or set.  For dicts, use list(d).")

рдореИрдВ stdlib рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рд╕реНрдерд╛рди рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди lib2to3
рдПрдХ рд╕рдорддреБрд▓реНрдп рд╕рдорд╛рдирддрд╛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ:

lib2to3/fixes/fix_operator.py
5:operator.isSequenceType(obj)   -> isinstance(obj, collections.Sequence)

2.7 рдореЗрдВ рд╣реИ

In [6]: operator.isSequenceType(np.array([1]))
Out[6]: True

рд▓реЗрдХрд┐рди 3.3 / 3.2 рдореЗрдВ

>>> isinstance(np.array([1]), collections.Sequence)
False

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдВ, рдХреГрдкрдпрд╛ рдХрд╣реАрдВ рди рдХрд╣реАрдВ Sequence.register(np.ndarray) рдЬреЛрдбрд╝реЗрдВред

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

рдЕрдЬрдЧрд░ 3.x рдХреЗрд╡рд▓ рдкрд╛рдпрдерди 2.x рдХреА рддреБрд▓рдирд╛ рдореЗрдВ random.sample рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдЦреНрдд рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред 2.x рдкрд░ рд╕реБрдиреНрди рднреА рдПрдХ рдЕрдиреБрдХреНрд░рдо рдЙрдкрд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИ (ndarray рдХреЗ рдкрд╛рд╕ index , count рдпрд╛ __reversed__ рд╡рд┐рдзрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВ)ред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ random.sample 3.

рдХрд╛рдлреА рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╣рд╛ рдХрд┐, рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ _make_ ndarray рдПрдХ рдЕрдиреБрдХреНрд░рдо,
рдХреНрдпреЛрдВрдХрд┐ рдЙрди рд╕рднреА рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдФрд░ рд╕реАрдзрд╛ рд╣реЛрдЧрд╛
рд▓рд╛рдЧреВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдлрд╝ рд╕реАрдХреНрд╡реЗрдВрд╕ рдХреЗ рдмрд╛рдж рд╕реЗ рд╣реА рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛
рдорд┐рдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рднреА рд▓рд╛рдкрддрд╛ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
2 рджрд┐рд╕рдВрдмрд░ 2012 13:30 рдХреЛ, "рд░рд╛рд▓реНрдл рдЧреЛрдорд░реНрд╕" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

Python 3.x рдмрд╕ random.sample рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдЦреНрдд рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ
рдЕрдЬрдЧрд░ 2.x. 2.x рдкрд░ рд╕реБрдиреНрди рднреА рдПрдХ рдЕрдиреБрдХреНрд░рдо рдЙрдкрд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИ (ndarray рдХреЛрдИ рдирд╣реАрдВ рд╣реИ
рд╕реВрдЪрдХрд╛рдВрдХ, рдЧрд┐рдирддреА рдпрд╛ рдЙрд▓рдЯ рддрд░реАрдХреЛрдВ)ред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдпрд╛ рддреЛ random.sample рдХрд╛ рдЧрд▓рдд рдЙрдкрдпреЛрдЧ рдпрд╛ рдкреАрдЫреЗ рдХреА рдУрд░ рд╕реЗ рд╕рдВрдЧрддрддрд╛ рдХрд╛ рдЯреВрдЯрдирд╛
рдЕрдЬрдЧрд░ 3.x.

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ Gi tHubhttps: //github.com/numpy/numpy/issues/2776#issuecomment -10929601 рдкрд░ рджреЗрдЦреЗрдВред

рдореИрдВрдиреЗ рдПрдХ рд╣реА рдмрд╛рдд рдХрд╣реА рд╣реЛрдЧреА, рдЕрдЧрд░ рдпрд╣ 2to3 рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдерд╛ рдЬреЛ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реВрдХреНрд╖реНрдо рдмрдирд╛рддрд╛ рд╣реИред
рд╕реВрдЪрдХрд╛рдВрдХ рдФрд░ рдЧрд┐рдирддреА рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ: рд▓рд┐рдВрдХ ,
Sequence рд▓рд┐рдП рд╕рднреА рдЕрдореВрд░реНрдд рд╡рд┐рдзрд┐рдпрд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рд╣реИрдВ, рдЕрдиреНрдп рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ MutableSequence рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реИ, рдФрд░ insert рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ 0-d рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдордд рднреВрд▓рдирд╛, рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдЙрдирдХреЗ рд╕рд╛рде рдЕрднреА рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдиреБрдХреНрд░рдо рдирд╣реАрдВ рд╣реИрдВ?

рд╣рдореНрдо, Sequence рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, MutableSequence (рд╡рд┐рд╕реНрддрд╛рд░, рдкреЙрдк) рдХреЗ рдХреБрдЫ рддрд░реАрдХреЛрдВ рд╕реЗ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рддреЛ рд╣рд╛рдБ, рд╣рдо рдЙрди 3 рддрд░реАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ random.sample рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ Sequence рдЙрджрд╛рд╣рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

__setitem__ рд▓рд╛рдЧреВ рд╣реИ, рд▓реЗрдХрд┐рди __delitem__ , рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж SomewhatMutableSequence ?

рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ "рдПрдХ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдпреЗ рд╕рдм рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рднрдпрд╛рдирдХ рдУ () "рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡реЗ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреЗ рдЕрдиреБрднрд╡рд╣реАрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддреЗ рд╣реИрдВред
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ insert , pop рдХрд╛ рд╢рдмреНрджрд╛рд░реНрде рдирд╣реАрдВ рд╣реИ рдЬреЛ рдПрдХ ndarray рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИрдВред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ 0-d рд╕рд░рдгреА рд╕реЗ рдЕрдзрд┐рдХ рд╕рд╣реА рдЪреАрдЬ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред
рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдкреЗрд╢рдХрд╢ рдПрдХ рдмрд╣рд╕ рдХрд░ рд╕рдХрддреЗ __iter__ рд╡рд┐рдзрд┐ рд╣реИ рдХрд┐ рд╕рд┐рд░реНрдл рдПрдХ рдХреЛ рдЬрдиреНрдо рджреЗрддреА рд╣реИ TypeError рддреЛ рдмрдЬрд╛рдп
StopIteration рд╡реИрд╕реЗ рднреА рдмрддрдЦ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд▓рд╛рдкрд░рд╡рд╛рд╣ рдирд┐рд░реНрдгрдп

ndarray рд╕рд┐рд░реНрдл рдПрдХ рдЕрдиреБрдХреНрд░рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

Btwред CPython рд╕реВрдЪреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреБрд╢рд▓ рдЖрд╡реЗрд╖рдг, рдкреЙрдк рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдПрдХ MutableSequence рд╣реИ

ndarray рдЗрди-рдкреНрд▓реЗрд╕ рдбрд╛рд▓рдиреЗ / рдкреЙрдк / рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (ndarray рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдЬрдм рдпрд╣ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдЕрдиреБрдХреНрд░рдо рд╣реИ, рддреЛ рдпрд╣ рдмрд╕ Python MutableSequence (рдФрд░ рдХрднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛) рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ Sequence рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдФрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ random.sample рдиреЗ рдпрд╣ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА, рд▓реЗрдХрд┐рди рдирд┐рдХрдЯ рджреГрд╖реНрдЯрд┐ рд╕реЗ, рдЗрд╕рдХрд╛ рдПрдХ рдкреНрд░рд╢рдВрд╕рдиреАрдп рдХрд╛рд░рдг рд╣реИ - рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдирдкреБрдЯ рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЙрдирдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдирд╛ред рдпрд╣ рд╕рд┐рд░реНрдл рдЕрдиреБрдХреНрд░рдордг рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдХреЗ рд▓рд┐рдП рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рд╣рдо рдмрдЧ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреНрд░рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдЬреЛ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рд╡рд╣ 3.4 рд╣реИ ...

0-рдбреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдПрдХ рдЕрдЪреНрдЫреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐; 0-d рд╕рд░рдгрд┐рдпрд╛рдБ Sequence рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ (рд╡реЗ Iterable рднреА рдирд╣реАрдВ рд╣реИрдВ)ред рд▓реЗрдХрд┐рди рдкрд╛рдпрдерди рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмрд╣реБрдд рднрдпрд╛рдирдХ рдирд╣реАрдВ рд╣реИ рдЕрдЧрд░ рд╡реЗ Sequence s рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рддреНрд░реБрдЯрд┐ рдХреЛ рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд╣реБрдВрдЪ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ - рдмрддрдЦ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрд╕рдлрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ :-)ред рдмрд╣реБ-рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП isinstance(a, Sequence) рд╕рдлрд▓ рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реИ рдФрд░ 0-рдбреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕рдлрд▓ рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реИ; рдЕрдЧрд░ рд╣рдо рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЕрдЪреНрдЫрд╛ рд╣реИред рд▓реЗрдХрд┐рди рднрд▓реЗ рд╣реА рд╣рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдлрд┐рд░ рднреА ndarray рдореЗрдВ Sequence s рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ MaskedArray рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА count рдкрджреНрдзрддрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП ndarray рдореЗрдВ рдПрдХ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЬреЛ рдХреБрдЫ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИ рд╡рд╣ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред

0-рдбреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдХреБрдЫ рдЖрд╕рд╛рди рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрд╣рддрд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рд╕реЛрдЪрддрд╛ рд╣реВрдВ); рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдРрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрддреЗ рд╣реИрдВ рддреЛ рд╡реЗ рдЗрд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗ рднреА рдЕрдиреБрдХреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдФрд░ рднреА рдЕрдЬреАрдм рд╣реИред рдЗрд╕рд▓рд┐рдП 0-рдбреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдЕрд╕рдВрдЧрдд рдмрдирд╛рдирд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред

@njsmith рдЖрдк рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╣рд╛рдВ рджреЗрдЦрддреЗ рд╣реИрдВ? рдЖрдЗрдВрд╕реНрдЯреАрди (рдЕрдиреБрдХреНрд░рдо) рдЬрд╛рдВрдЪ рдХреЗ рдмрд╛рдж рдореИрдВ рдХреЗрд╡рд▓ len(population) рджреЗрдЦрддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рд╕реВрдЪреА рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рд╣реЛрддрд╛ рд╣реИред http://hg.python.org/cpython/file/22d891a2d533/Lib/random.py

рдкрдВрдбреЛрдВ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдФрд░ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЕрд╕рдВрдЧрдд рдЧрдгрдирд╛ рд╡рд┐рдзрд┐рдпрд╛рдБ рдФрд░ рдПрдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рднреА рд╣реЛрддреА рд╣реИред

@rgommers : рд╣рдореНрдо, рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ, рдореИрдВ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╕реЗ рдЧреБрдорд░рд╛рд╣ рд╣реЛ рдЧрдпрд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд┐ рдпрд╣ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ range() рд▓рд┐рдП рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдпрд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рд╡реЗ рд╕реЗрдЯреНрд╕, рд╕реАрдХреНрд╡реЗрдВрд╕ рдФрд░ рдореИрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕рдордЭрд╛ рд╕рдХреЗрдВ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдмрджрд▓ рджреЗрдВ

if isinstance(population, _Set):
    population = tuple(population)
if isinstance(population, _Mapping):
    raise Blarrrgh()
# Otherwise assume that we have a sequence and hope

рдореМрдЬреВрджрд╛ ndarray рдЙрдкрд╡рд░реНрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдмрд┐рдВрджреБ рд╣реИред рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХрд╣рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ ndarray рдПрдХ Sequence рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЙрдкрд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИрдВ :-(! рдЗрд╕рд▓рд┐рдП рдЬреЛ рд╡рд┐рдХрд▓реНрдк рдХрдо рд╕реЗ рдХрдо рдмреБрд░рд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЙрдкрд╡рд░реНрдЧ Sequence рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛

  • Ndarray рдЙрдкрд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдЕрд╕рдВрдЧрдд рдЙрдкрдпреЛрдЧреЛрдВ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░реЗрдВ, рдФрд░ рдЕрдВрддрддрдГ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ Sequence -рдЕрд╕рдВрдЧрдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВред рдпрд╣ count рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Series.index рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рдкрдВрдбреЛрдВ рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рд╡рд┐рдШрдЯрдирдХрд╛рд░реА рд╣реЛрдЧрд╛ред (DataFrame ndarray рдХрд╛ рдЙрдкрд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдФрд░ DataFrame рдХреЛ рд╕рд┐рдВрдХ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред) рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо @wesm рд╕реЗ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рд╕реЛрдЪрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди ...
  • рдЖрдЧреЗ рдмрдврд╝реЛ рдФрд░ Sequence рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ndarray рдФрд░ рдЙрд╕рдХреЗ рдЙрдкрд╡рд░реНрдЧреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВ, рдФрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдХреБрдЫ ndarray рдЙрдкрд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЭреВрда рд╣реЛрдЧрд╛ред рдХреЗрд╡рд▓ Sequence рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рднрд╛рдЧреЛрдВ рдкрд░, рдФрд░ рдкрд╛рдпрдерди рдкреНрд░рдХрд╛рд░ рдЖрдорддреМрд░ рдкрд░ рд╡реИрд╕реЗ рднреА рд╣реЛрддреЗ рд╣реИрдВ ...
  • рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рдЕрдореВрд░реНрдд-рдмреЗрд╕-рдХреНрд▓рд╛рд╕ рдмрдХрд╡рд╛рд╕ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рд╡рд┐рд░рд╛рд╕рдд рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝ рджреЗрдВред рдХрд░
class multidim_ndarray(ndarray, Sequence):
  pass

рдФрд░ рдЗрд╕ рд╢реНрд░реЗрдгреА рдХреЗ рдмрдЬрд╛рдп рдмрд╣реБ-рдордВрдж рд╕рд░рдгрд┐рдпрд╛рдБ рдмрдирд╛рддреЗ рд╣реИрдВред рдЙрдкрд╡рд░реНрдЧреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ ndarray рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, multidim_ndarray ред рдмреЗрд╢рдХ, рдПрдХ рдПрдХрд▓ ndarray рд╡рд╕реНрддреБ .resize() рдорд╛рдзреНрдпрдо рд╕реЗ 0-d рдФрд░ рдмрд╣реБрдЖрдпрд╛рдореА рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдХрд░ рд╕рдХрддреА рд╣реИ ...

  • рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ рдХрд┐ ndarray рдХрднреА рднреА Sequence ред

[ isSequenceType рдЪреАрдЬрд╝ рдереЛрдбрд╝реА рдмрд╣реБрдд рд╡реНрдпрд╛рдХреБрд▓рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкреБрд░рд╛рдирд╛ рдХрд╛рд░реНрдп рд╣реИ рдЬреЛ рдЕрдореВрд░реНрдд рдЖрдзрд╛рд░ рд╡рд░реНрдЧреЛрдВ (рдЬреЛ 2.6 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛) рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╕реНрддреГрдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдиреАрдЪреЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рд╕рд┐рд░реНрдл рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд░рдХрд╛рд░ (1) __getitem__ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ dict ред рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдпрд╣ рдХрдИ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЧрд▓рдд рдЙрддреНрддрд░ рджреЗрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдЬреЛ рдПрдХ рддрд╛рдирд╛рд╢рд╛рд╣ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ!)ред рддреЛ рдЕрдЧрд░ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдиреБрдХреНрд░рдо рдкреНрд░рдХрд╛рд░ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ isinstance(obj, Sequence) рдПрдХ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ 2to3 рд╕рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдиреНрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ ...]

рд╢рд╛рдпрдж рдпрд╣ рдЕрдЬрдЧрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП SequenceBase рддрд░рд╣ рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдЬреЛ рдЕрдиреБрдХреНрд░рдо рд╕реЗ рднреА рдиреАрдЪреЗ рд╣реИ рдФрд░ .index рдпрд╛ .count рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ .__len__ рдФрд░ __getitem__ рдпрд╛ рдРрд╕реЗ? рдпрд╣ рд╕рдм рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рд╕реАрдХреНрд╡реЗрдВрд╕ рдореЗрдВ index рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ numpy рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдкрд░ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЕрдиреБрдХреНрд░рдо рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдЕрдЬрдЧрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ?

рдореБрдЭреЗ @seberg рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд╕рдВрдж рд╣реИ; рдЕрдЧрд░ рдкрд╛рдпрдерди рджреЗрд╡ рдЕрд╕рд╣рдордд рд╣реИ рддреЛ рдореИрдВ @njsmith рдХреА рджреВрд╕рд░реА рдЧреЛрд▓реА рдХреЗ рд▓рд┐рдП рдЬрд╛рдКрдВрдЧрд╛ред рдорд┐рд╕рд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ ndarrays рдЕрдиреБрдХреНрд░рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЧреЛрд▓рд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ 1 рдФрд░ 3 рдЗрдореНрд╣реЛред

[рд╡реВрдкреНрд╕, "рд▓рд╛рдкрддрд╛ рд╡рд┐рдХрд▓реНрдк" рд╡рд┐рдХрд▓реНрдк 4 рдХреЗ рд░реВрдк рдореЗрдВ рдерд╛, рдмрд╕ рдХрд┐рд╕реА рддрд░рд╣ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдкрд╛рд░реНрд╕рд░ рдиреЗ рдЗрд╕реЗ рдкрд┐рдЫрд▓реА рдмреБрд▓реЗрдЯ рдореЗрдВ рднреНрд░рдорд┐рдд рдФрд░ рдЕрдкрдардиреАрдп рддрд░реАрдХреЗ рд╕реЗ рдореЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдкреНрд░рд╛рд░реВрдкрдг рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгреА рд╕рдВрдкрд╛рджрд┐рдд рдХреА рд╣реИред]

Sequence , рдЕрд░реНрдерд╛рдд buffer рдФрд░ xrange рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЖрдзреЗ рдкреНрд░рдХрд╛рд░, рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ, рдЬреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИрдВ, рдЬреЛ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ / рдорд┐рдХреНрд╕рд┐рди рдХреЗ рд░реВрдк рдореЗрдВ collections.Sequence рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@ рд░реЗрдВрдХ : рдЕрдЪреНрдЫреА рдкрдХрдбрд╝ред рддреЛ рд╢рд╛рдпрдж рд╕рдорд╛рдзрд╛рди рдХрд╣реАрдВ Sequence.register(np.ndarray) рдХрд╣реАрдВ рдХреЙрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред (рдпрд╣ рдореВрд▓ рд░рд┐рдкреЛрд░реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рднреА рд╣реЛрдЧрд╛ред)

рд╣рдореЗрдВ рд╢рд╛рдпрдж рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ __reversed__ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ...

@ рдЧрд▓рдд рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдпрд╣ рдкреАрдИрдкреА рдореЗрдВ рдПрдХ рдЦреБрд▓реЗ рдореБрджреНрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИ: http://www.python.org/dev/peps/pep-3119/###### рдЕрдЬреАрдм рдмрд╛рдд рд╣реИ рдХрд┐ рд╕реНрдЯреЗрдЯрд╕ рдлрд╛рдЗрдирд▓ рдХреЗ рд╕рд╛рде рдкреАрдИрдкреА рдореЗрдВ рднреА рдЦреБрд▓реЗ рдореБрджреНрджреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрдЧ рдХрд╛ рд╢реАрд░реНрд╖рдХ рдереЛрдбрд╝рд╛ рднреНрд░рд╛рдордХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрдЧ рдХреЗрд╡рд▓ python3 рдХреЗ рддрд╣рдд рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, random.sample(numpy_array) python2 рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди isinstance(np.array([1]), collections.Sequence) рдХреЛ рдХрд┐рд╕реА рднреА рдЕрдЬрдЧрд░> = 2.6 рдореЗрдВ True рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдкрд╛рдпрдерди 2.7 рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрдерди 2.7 рдореЗрдВ рдЗрд╕ рдмрдЧ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЗрд╕рдиреЗ рдХреБрдЫ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛ редisequenceType () рдХреЙрд▓ рдХреЛ рдЖрдЗрдВрд╕реНрдЯреАрди (x, рд╕рдВрдЧреНрд░рд╣ред рдЕрд╕рдорд╛рдирддрд╛) рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рдЬрдм рдореИрдВ рдПрдХ numpy.ndarray рдореЗрдВ рдЧреБрдЬрд░рддрд╛ рд╣реВрдВ рддреЛ рдкрд░реАрдХреНрд╖рд╛ рдЭреВрдареА рд╣реЛ рдЬрд╛рдПрдЧреАред рдпрд╣ рдмрд╣реБрдд рдбрд░рдкреЛрдХ рдмрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдкрд╛рдпрдерди-рддрдХрд┐рдпрд╛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдмрд╕ рдЗрд╕реЗ рдкрд╛рдпрдерди 2.7 рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред Image.point (lut, рдореЛрдб) рдХреЙрд▓ рдЖрдЗрдВрд╕реНрдЯреАрди (lut, рд╕рдВрдЧреНрд░рд╣ред рдЕрд╕рдорд╛рдирддрд╛), рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдкрд░реЗрдЯрд░ редisSequenceType ()

рдЕрдм рдпрд╣ рдлрд┐рд░ рд╕реЗ рдЖрдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдордп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реНрдХреЗрд▓рд░ рдкреНрд░рдХрд╛рд░ рдкрдВрдЬреАрдХреГрдд рдереЗ (# 4547),

рддреЛ рд╢рд╛рдпрдж рд╕рдорд╛рдзрд╛рди рдХрд╣реАрдВ Sequence.register (np.ndarray) рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

рд╣рд╛рдВ, рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдордЭреМрддрд╛ рд╣реИред

рд╣рд╛рдВ, рдХреГрдкрдпрд╛ рдХрд╣реАрдВ рди рдХрд╣реАрдВ Sequence.register(np.ndarray) рдЬреЛрдбрд╝реЗрдВред

@ рдкреАрдЖрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ?

рдЬрд╝рд░реВрд░ред рдпрд╣ рдХрд╣рд╛рдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬрд╣рд╛рдБ np.ndarray рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ: рд╣рдо рдЕрднреА рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╡рдореВрд▓реНрдпрди рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ False (# 9718), рдпрд╛рдиреА, рд╣рдо рдЙрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдирд┐рдХрд╛рд▓ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ) ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд╖реНрдХрд░реНрд╖ рд╣реИ рдХрд┐ рд╕рд░рдгреА рд╕реНрдХреЗрд▓рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЦрд╛рд▓реА рд╕рд░рдгреА рдЙрд╕ рдЯреВрдЯреЗ рд╣реБрдП рд╡рд╛рджреЗ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ ...

рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдЙрдЪрд┐рдд рд╕реНрдерд╛рди рд╢рд╛рдпрдж numpy.core.multiarray :
https://github.com/numpy/numpy/blob/4f1541e1cb68beb3049a21cbdec6e3d30c2afbbb/numpy/core/multiarray.py

рдареАрдХ рд╣реИ рдореБрдЭреЗ рдпрд╣ рдЪрд╛рд╣рд┐рдПред рдХреИрд╕реЗ? рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реВрдВрдЧрд╛:

def __reversed__(self):
    return iter(self[::-1])

def index(self, value) -> int:
    return np.in1d(self, value).nonzero()[0]

def count(self, value) -> int:
    return (self == value).sum()

# Necessary due to lack of __subclasshook__
collections.abc.register(np.ndarray)

рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ Tensorflow (2.0) рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде, Sequence.register(np.ndarray) рд╕реЗ Tensorflow рдЧрд▓рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣реАрдВ рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрджрд┐ рдореВрд▓реНрдп рдПрдХ рдЕрдиреБрдХреНрд░рдо рд╣реИ рдФрд░ рддрдм рдЙрдкрдпреЛрдЧ рдПрдХ ndarray рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрд▓рдЧ рд╣реИред

рджреЗрдЦреЗрдВ: https://gitlab.com/datadrivendiscovery/d3m/issues/426

рдкреНрд░рдлреБрд▓реНрд▓рд┐рддред рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХреЛрдИ рд╕рд░рдгреА рдмреЗрд╣рддрд░ рд╣реИ рддреЛ рдкрд░реАрдХреНрд╖рдг рдмреЗрд╣рддрд░ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдорд╛рдорд▓рд╛ рд╣реИред

рд╕рдВрднрд╡рддрдГ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд╛ рдХреНрд░рдо рдЧрд▓рдд рд╣реИ, рдЗрд╕реЗ рдкрд╣рд▓реЗ ndarray рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдкрд╣рд▓реЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдм рд╡рд╣ рдХреЛрдб рдмреНрд▓реЙрдХ рдЪрд▓рддрд╛ рд╣реИред

@ рд╣рдорд╛рд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ __contains__ / operator.in рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдкреАрдЖрдИ рдЕрдиреБрдмрдВрдз рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рд╣реИ?

рдХреНрдпрд╛ рдЖрдк рдпрд╣рд╛рдВ рдорди рдореЗрдВ рдореМрдЬреВрдж рдПрдкреАрдЖрдИ рдЕрдиреБрдмрдВрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдмрд┐рд▓рдХреБрд▓ рдирд╣реАрдВ рдЖрддрд╛ред

рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдЬреЗрдиреЗрд░рд┐рдХ рдХреЛрдб рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЪреАрдЬреЛрдВ рдХреЗ рдмреАрдЪ рдХреИрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬреИрд╕реЗ рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рдЕрдиреБрдХреНрд░рдо рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддрдирд╛рд╡ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдЖрдпрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдореИрдВ рдПрдХ 2d ndarray рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдИ рдЖрдпрд╛рдореЛрдВ рдФрд░ рдЗрддрдиреЗ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдореБрдЭреЗ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдиреБрдХреНрд░рдо рд╣реИред

рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдиреЗрд╕реНрдЯреЗрдб рдЕрдЬрдЧрд░ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд╕рд╛рде рдореБрджреНрджреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рд╣реИрдВред __contains__ рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдПрдХ рд╣реИ, рджреВрд╕рд░рд╛ рдпрд╣ рд╣реИ рдХрд┐ 0-D рд╕рд░рдгрд┐рдпреЛрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рдЕрдиреБрдХреНрд░рдо рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ, рдЬреИрд╕реЗ рдХрд┐ рд▓рдВрдмрд╛рдИ 0 рдЖрдпрд╛рдо рдореМрдЬреВрдж рд╣реИрдВ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ arr[0] = 0 рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ arr[0] == 0 , рдХреНрдпреЛрдВрдХрд┐ arr[0] рдПрдХ рдордирдорд╛рдирд╛ рд╕рд░рдгреА рд╣реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЬреЛ рдмреЗрд╣рддрд░ рд╡рд░реНрддрдиреА рд╣реЛрдЧреА arr[0, ...] ред рдирд┐рдЬреА рддреМрд░ рдкрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рдиреЗрд╕реНрдЯреЗрдб рд╕реАрдХреНрд╡реЗрдВрд╕" рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЕрдЪреНрдЫреА рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬреЛ рд╕реЛрдЪрдиреЗ рдХреА рдкреНрд░рд╡реГрддреНрддрд┐ рд░рдЦрддреЗ рд╣реИрдВред (рдпрд╛рдиреА рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдХрд┐рд╕реА рд╕рд░рдгреА рдХреЛ for col in array рд░реВрдк рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░реВрдВ рдФрд░ рднрд▓реЗ рд╣реА рдореИрдВ рдХрд░реВрдВред for col in array.iter(axis=0) рд▓рд┐рдЦрдиреЗ рдХрд╛ рдорди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛

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

рдмрд╕ рдкрд╛рд╕ рд╕реЗ рдЬрд╛ рд░рд╣рд╛ -
рдореИрдВрдиреЗ рдкрд╛рдпрдерди-рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдкрд┐рдЫрд▓реЗ рд╣рдлреНрддреЗ рд▓рд┐рдЦрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдкрд╛рдпрдерди рдХреЗ collections.abc.Sequence __eq__ рдФрд░ рдЕрдиреНрдп рддреБрд▓рдирд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рднрд▓реЗ рд╣реА рдЗрд╕рдХреЗ рдкрд╛рд╕ рдЕрдиреНрдп рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВ рдФрд░ tuplesред (рд╡рд╣ рдореЗрд▓ рдереНрд░реЗрдб рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ)ред

рдореИрдВ рд╡рд╣рд╛рдБ __eq__ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрди рджреГрд╢реНрдпреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджреЗрдЧрд╛ рдЬреЛ Numpy.array рдХреЗ рдкрд╛рд╕ рд╣реИрдВред

рдкрд╛рдпрдерди рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдФрдкрдЪрд╛рд░рд┐рдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛, "рдЕрдиреБрдХреНрд░рдо" рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрди рдЪреАрдЬреЛрдВ рдХреЛ рд╕реМрдВрдкрдирд╛ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдЪрд▓рди рдХрд░реЗрдВрдЧреЗ - collections.abc.ComparableSequence рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдВрджреБ рдкрд░? (рдФрд░ рдЬрдм рд╕реЗ + рдХреИрдВрд╕рд┐рдиреЗрд╢рди рдХреЗ рд▓рд┐рдП + рдФрд░ * рд╕реВрдЪреА рдФрд░ рдЯреБрдкрд▓реНрд╕ рдореЗрдВ)ред рдЗрд╕рд▓рд┐рдП, рдЕрдиреБрдХреНрд░рдо рдкрд░ рдЪрд╢реНрдорд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо 1 рдбреА рдЦрд╕реНрддрд╛ рд╕рд░рдгрд┐рдпрд╛рдВ рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдореЗрд▓ рдЦрд╛рдПрдЧреАред

рдкрд╛рдЗрдерди рд╕реАрдХреНрд╡реЗрдВрд╕ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдФрдкрдЪрд╛рд░рд┐рдХрддрд╛ рдЕрдиреНрдп рдЕрдкрднреНрд░рдВрд╢реЛрдВ рдХреЗ рд╕рд╛рде рднреА рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП https://github.com/numpy/numpy/issues/2776#issuecomment -33086546 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред

рдореИрдВ рдЙрд╕ рд╕рдбрд╝рдХ рдкрд░ рдЕрдХреЗрд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░реЗрд░рд┐рдд рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ - рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЦреБрд╢реА рд╕реЗ рдкреАрдИрдкреА рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реВрдВрдЧрд╛ред (рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЕрдиреБрдХреНрд░рдо рдиреЗ __eq__ рдирд┐рд░реНрдорд╛рдг рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдФрд░ рд╕рдВрднрд╡рддрдГ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рд╣реИ рдЬрдм рдореИрдВ рдЗрд╕реЗ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ)

@jsbueno рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрдпрд╛ рдирд╣реАрдВ рджреЗрдЦрддрд╛, рдпрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдмреАрдЪ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ndarray рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧрд╛ред рдореИрдВ рдЬреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ Collection рдЬрд┐рд╕рдореЗрдВ count() рдФрд░ index() , рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ? рдФрд░ рдХреБрдЫ рднреА рдЙрди рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдмреАрд╕реА рд╣реЛрдЧрд╛ рдЬреЛ рдкрд╛рдпрдерди рдХреЗ рдкрд╛рд╕ рдЦреБрдж рдХреА рдмрд╣реБрдд рдХрдо рдпрд╛ рдХреЛрдИ рдЕрд╡рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рдореНрдкреА рдХреЛ рдпрд╣ рдЕрдзрд┐рдХ рд╕рд╣реА рд▓рдЧрд╛ред рдпрд╣ рдЕрдкрдиреЗ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ Collection рдмрдирд╛рддрд╛ рд╣реИред
рдЕрдм, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдореБрдЭреЗ рдпрд╣ рднреА рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рднреА рддрддреНрд╡реЛрдВ рдХрд╛ рд╕рд┐рдореНрдкреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕реБрдкрд░ рдЙрдкрдпреЛрдЧреА (рдФрд░ рд╕рд╣рдЬ) рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рддрддреНрд╡реЛрдВ рдХрд╛ рдХрдо рд╕реЗ рдХрдо рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ __contains__ рдЕрдиреБрд░реВрдк рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рднреА рд╣реИ рдХрд┐ len(Matrix) рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдФрд░ _not_ Matrix.shape[0] !

1-рдбреА рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рдЕрд▓рдЧ, рдКрдкрд░ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЗ рд╕рд╛рде, рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рд░рдгрд┐рдпрд╛рдВ рдХреНрдпрд╛ рд╣реИрдВ ?:

  • Container : рддрддреНрд╡реЛрдВ рдХрд╛: рднрд╛рд░реА_рдЪреЗрдХ_рдорд╛рд░реНрдХ:
  • Sized + Iterable рд╕рд╡рд╛рд▓: subarrays (рдпрджрд┐ рдирд╣реАрдВ 1-рдбреА) рдХреЗ:
  • Reversible : рд╣рдо рдмрд╕ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реИред :рд╕рд╡рд╛рд▓:
  • count() рдФрд░ index() : рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: (Heavy_check_mark :)
  • Sequence : рд╕рдмрд░реНрд░реЗ iterable рдФрд░ рддрддреНрд╡ рдХрдВрдЯреЗрдирд░ рдХреЗ рдмреАрдЪ рдмреЗрдореЗрд▓: x:

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ рдореМрд▓рд┐рдХ рдЧреБрдгреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рднреА рдЯрдХрд░рд╛рддреЗ рд╣реИрдВред NumPy рдПрдХ Container рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ .index() рдФрд░ .count() , рдпрд╛рдиреА Sequence рдХрд░рдирд╛ рдЬрд╛рдирддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Iterable рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдмрд┐рдирд╛ред рдЬрдмрдХрд┐ рдпрд╣ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ Iterable , рд▓реЗрдХрд┐рди рд╕рдмрд░реЗрдЬрд╝ рдХрд╛ ред
рдФрд░ рдЕрдЧрд░ рдпрд╣ рдПрдХ рдЧрдбрд╝рдмрдбрд╝ рдЧрдбрд╝рдмрдбрд╝ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд╣реИред рдХреЗрд╡рд▓ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдпрд╛ рддреЛ рд╕рд┐рдореНрдкреА рдкрде рдкрд░ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдмрд╕ Iterable рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рди рдХрд░реЗрдВред (рд╣рдо SymPy рдкрде рдкрд░ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗ, рдФрд░ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ __iter__ рдХреЛ рдПрдХ рдореМрдХрд╛ рдорд┐рд▓рд╛ рд╣реИ)ред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореЗрд░реА рдЙрдореНрдореАрдж рдпрд╣ рд╣реИ рдХрд┐ 1-рдбреА рдПрдХ рддрд░рдл, рд╕рд░рдгреА-рдкрд╕рдВрдж рдХреЗрд╡рд▓ рдкрд╛рдпрдерди рдХрд▓реЗрдХреНрд╢рдВрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрд▓рдЧ рдЬрд╛рдирд╡рд░ рд╣реИрдВред рдЬрдм рдЪрд▓рдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ MultidimensionalCollection рдмреАрдЪ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмреЗрдореЗрд▓ рд╕рдВрдХреЗрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП __contains__ рдФрд░ __iter__ (рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ?)ред

рдЬрдм рд╡рд░реНрддрдорд╛рди рдореЗрдВ Sequence рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рдпрд╣ рд╕реЛрдЪрдХрд░ рдЖрд░рд╛рдо рдХрд░реВрдВрдЧрд╛ рдХрд┐ ElementwiseCollection (рдСрдкрд░реЗрдЯрд░ рдХрдВрдЯреЗрдирд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдмрдЬрд╛рдп рддрддреНрд╡рд╡рд╛рдЪрдХ рд╕рдВрдЪрд╛рд▓рдХ рд╣реИрдВ, рдЙрджрд╛ + ) рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЦрд╕реНрддрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рд╕рднреА рд╕рд░рдгреА-рдкрд╕рдВрдж рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ (рд╕рд░рдгреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рджреЗрдЦреЗрдВ)ред рдпрд╣ рднреА рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ - рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рджреЗрд╢реА - рдФрд░ рдХрднреА-рдХрднреА рдЦреБрдж рдХреЗ рд╕рд╛рде - рдЕрдЬрдЧрд░ рдкрд░ред

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

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдФрд░ рдореИрдВ рдпрд╣рд╛рдВ 8 рд╕рд╛рд▓ рдХреА рд▓рдВрдмреА рд╡реИрдЧрди рдореЗрдВ рдХреВрджрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВред рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде, рдЕрдВрддрд┐рдо рдИ-рдореЗрд▓ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЗ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдмрд╛рдж, рдФрд░ рдмреАрдЪ рдореЗрдВ рдПрдХ рдЕрдиреНрдп рджреЛрд╕реНрдд рдХреЗ рд╕рд╛рде рдЪреИрдЯрд┐рдВрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдЗрди рдмрд╛рддреЛрдВ рдХреЛ рд╕рдмрд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рд╡реЗ рд╣реИрдВред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдХреЛ "рдЬреЛ рднреА рд╕рдВрдЧреНрд░рд╣ред

рдореИрдВ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдКрдкрд░ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдмрд╕ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ "рдХреНрдпрд╛ рдкрд╛рдпрдерди рд╕реАрдХреНрд╡реЗрдВрд╕ рдмрдирд╛рддрд╛ рд╣реИ" рдХреЗ рд░реВрдк рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдХрдореА рд╣реИ рдЬреЛ ndarrays рдореЗрд░реЗ рдЬреИрд╕реЗ рд╕реВрдЪрд┐рдпреЛрдВ рдФрд░ tuples рдЬреИрд╕реЗ рджреГрд╢реНрдпреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдирд╛ рд╣реИ, рдПрдХ рд╕рдиреНрдирд┐рд╣рд┐рдд рд╕реВрдЪрдХрд╛рдВрдХ рд╣реЛрдиреЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рдЬреЛ рд╕рднреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдмреАрд╕реА рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рджреЗрдирд╛ рдХрд┐рд╕реА рднреА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдореВрд▓реНрдп рдХрд╛ рд╣реЛрдЧрд╛, рдпрд╛ рддреЛ рдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдпрд╛ рд╕реНрдерд┐рд░-рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХреЗрдд рдореЗрдВред

@seberg рдпрд╣ рдПрдХ рдорд╣рд╛рди

рдпрд╣ рд╕рдорд╕реНрдпрд╛ ndarray рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ Sequence рдпрд╛ Iterable рдпрд╛ Container рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ ndarray рд╕рджрд╕реНрдпреЛрдВ рдкрд░ рд╕рд╕реНрддреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдП рдЬреЛ рдЙрдЪрд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдФрд░ isinstance рдЪреЗрдХ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

class ndarray(Generic[T]):
    def as_container(self) -> Container[T]:
        if self.ndim == 0:
            raise ValueError
        return ContainerView(self)  # correctly answers __len__, __iter__ etc.
    def as_subarray_iterable(self) -> Iterable[np.ndarray[T]]:
        if self.ndim <= 1:
            raise ValueError
        return SubarrayIterableView(self)
    def as_scalar_sequence(self) -> Sequence[T]:
        if self.ndim != 1:
            raise ValueError
        return ScalarView(self)
    def as_subarray_sequence(self) -> Sequence[np.ndarray[T]]:
        if self.ndim <= 1:
            raise ValueError
        return SubarraySequenceView(self)  # this view has to reinterpret __contains__ to do the expected thing.

ndarray рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╣реЛрдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ ndarray рдЗрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрднрд╡ рд╕рдмрд╕реЗ рд╕рд╕реНрддреЗ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛, рддреЛ рдпрд╣ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдЬрдиреНрдо рджреЗрддрд╛ рд╣реИред рдпрд╣ ndim рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЪреЗрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╡рд┐рд╢реЗрд╖рдХрд░ рдЬрдм рдкреНрд░рдХрд╛рд░ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) ndarray ред

рдХреНрдпрд╛ рд╡рд╣ рдЕрдВрддрд┐рдо рдПрдиреЛрдЯреЗрд╢рди Sequence рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ Iterable ?

@ рдПрд░рд┐рдХ-рд╡рд╛рдЗрдЬрд░ рдпреВрдк! рдзрдиреНрдпрд╡рд╛рджред рдЖрдкрдХреЗ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ?

рдЦреИрд░, as_subarray_sequence рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ list(arr) :) рд╣реИ

@ eric-wieser рд╣рд╛рдБ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдПрдХ рджреГрд╢реНрдп рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЛрдИ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред

рдареАрдХ рд╣реИ, list(arr) рд╕рд┐рд░реНрдл len(arr) рд╡рд┐рдЪрд╛рд░ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рд╡реИрд╕реЗ рднреА рдЙрддреНрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬреИрд╕реЗ рдЕрдЧрд░ рдореИрдВрдиреЗ рдЖрдкрдХреЛ iterated рдХрд┐рдпрд╛ рд╣реИред

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╕рдордп рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рд╕рднреА рддрд░реАрдХреЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИрдВ рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ ndarray-like рд╣реИ (рдореИрдВ рдЕрд╕рд╣рдордд рд╣реВрдВ рдХрд┐ 0-D рд╕рд░рдгрд┐рдпрд╛рдБ рдХрдВрдЯреЗрдирд░ рдирд╣реАрдВ рд╣реИрдВ)ред рдЗрд╕рд▓рд┐рдП рд╡реЗ рдХреЗрд╡рд▓ рддрднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреЗ рдЬрдм рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХреАрдХреГрдд рдПрдмреАрд╕реА рдерд╛, рдФрд░ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ рдХрд┐ рдореВрд▓ рдЕрдиреБрдХреНрд░рдордг рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рдВрдЧрдд рд╣реИ рдФрд░ рд╢рд╛рдпрдж .flat рд╕рдВрдкрддреНрддрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдореВрд▓ рдореБрджреНрджрд╛ ( random.sample рдХрд╛рдо рдмрдВрдж) рдкрд╛рд░рд┐рдд рд╕рдордп рдХреЗ рдХрд╛рд░рдг рдХрд╛рдлреА рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓рдЧрддрд╛ рд╣реИред рд╣рд╛рдВ, рдЗрд╕рдХрд╛ рд╣рд▓реНрдХрд╛ рдХрд╖реНрдЯрдкреНрд░рдж, рд▓реЗрдХрд┐рди рд╕рдВрднрд╡рддрдГ рдпрд╣ рдмреЗрд╣рддрд░ рдХреЗ рд▓рд┐рдП рднреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рддреЛ рд╕рдмрд░реЗрдЬ рдпрд╛ рддрддреНрд╡реЛрдВ рдХреЛ рдЪреБрдирдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╣рдо рдХреБрдЫ рдмрддрдЦ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛрдб рддреЛрдбрд╝рдиреЗ рд╣реИ рд╣реВрдБред рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╢рд╛рдпрдж рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИрдВ (рдореЗрд░реЗ рдкрд╛рд╕ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИрдВ)ред рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдИ рдХреЛрдб isinstance ABC s рдкрд░ isinstance рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ np.ndarray рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рд╕реЗ рдирдлрд░рдд рд╣реИред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ ndarray рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП, рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА, рд╣рдореЗрдВ рдПрдХ рдирдП ABC , .ndim рд╕рдВрдкрддреНрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдФрд░ рд╕рдВрднрд╡рддрдГ рдиреЗрд╕реНрдЯреЗрдб-рдЕрдиреБрдХреНрд░рдо рд╢реИрд▓реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЙрдкрд░реНрдпреБрдХреНрдд рдЬреИрд╕реЗ рддрд░реАрдХреЗ рдХрд┐рд╕реА рднреА рд╕рд░рдгреА-рдЬреИрд╕реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрднреЛрдХреНрддрд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЪрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣рдо рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ :)? рдЙрдиреНрд╣реЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╛рдпрдерди рдЕрдиреБрдХреНрд░рдо рдЪреАрдЬреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

@ Eric-Wieser

рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдкреВрд░реЗ рдЕрдиреБрдХреНрд░рдо рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЖрдк рдХреЗрд╡рд▓ рдХреБрдЫ рддрддреНрд╡реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред

@seberg

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╕рдордп рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ

рдореИрдВ рдЖрдкрд╕реЗ рд╕рд╣рдордд рд╣реБрдБред рдЖрдк рдХрд┐рд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЬрдм рд╕рдВрдЦреНрдпрд╛ 1.10 рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдирд┐рдХрд▓рддреА рд╣реИ, рддреЛ рдореИрдВ рдХрднреА-рдХрднреА рдЕрдиреБрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЖрдпрд╛рдореА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЦрд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдпрджрд┐ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдирд┐рдореНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдпрд╣ рдПрдХ рдЖрдпрд╛рдореА рд╣реИ, рдФрд░
  • cast рдХреЛ рдореИрдкреА рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдиреБрдХреНрд░рдо рд╣реИред

рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдмрдбрд╝реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реЗ рднреА рдирдлрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рддрд░реАрдХреЗ рдпрд╛ рдирдВрдЧреЗ рдХрд╛рд░реНрдп рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдЪрд▓рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдк рдПрдиреЛрдЯреЗрд╢рди рдкрдХрдбрд╝ рд▓реЗрддреЗ рд╣реИрдВред рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?

(рдореИрдВ рдЕрд╕рд╣рдордд рд╣реВрдВ рдХрд┐ 0-рдбреА рд╕рд░рдгрд┐рдпрд╛рдВ рдХрдВрдЯреЗрдирд░ рдирд╣реАрдВ рд╣реИрдВ)ред

рдореБрдЭреЗ рдХреЛрдИ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрдк рдЗрди рдХреЗ рд▓рд┐рдП __len__ рдЬреБрдЯрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рддрд░рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдХрдВрдЯреЗрдирд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ 0-рдбреА рд╕рд░рдгреА рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдореИрдкреА рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк 0-рдбреА рдПрд░реЗрдЬрд╝ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдкрдХрдбрд╝ рдореЗрдВ рдирд╣реАрдВ рдЖрдПрдЧрд╛ред

рд╣рдореЗрдВ рдПрдХ рдирдИ ABC рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рдХрд┐ .ndim рд╕рдВрдкрддреНрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реИ рдФрд░ рд╕рдВрднрд╡рддрдГ рдиреЗрд╕реНрдЯреЗрдб-рдЕрдиреБрдХреНрд░рдо рд╢реИрд▓реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕реБрдЭрд╛рд╡ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╡реИрд╕реЗ рднреА рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП JAX рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдПрдХ рд╢реМрдХреАрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реВрдБред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ, numpy.ndarray рдФрд░ jax.numpy.ndarray (рдЬрд┐рд╕рдореЗрдВ рдЙрдкрд╡рд░реНрдЧ рд╣реИрдВ) рджреЛрдиреЛрдВ рдХреЛ рдХреБрдЫ рд╕рд╛рд░ NDArray рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ ndim рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдпрд╣ NDArray(Generic[T]) рдХрдо рд╕реЗ рдХрдо рд╣реЛрдЧрд╛, рдФрд░ рд╢рд╛рдпрдж рдШрдЯрдирд╛ рдХрд╛ рдЖрдХрд╛рд░ рдпрд╛ рдЖрдпрд╛рдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рднреА рд╣реЛред рдпрд╣ __eq__ NDArray[np.bool_] рд▓реМрдЯ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рд╢рд╛рдпрдж рдореБрдЭрд╕реЗ рдмреЗрд╣рддрд░ рдЬрд╛рдирддреЗ рд╣реИрдВ :)

рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛ рдХрд┐ numpy.array рдХреЛ collections.Sequence рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдм рдореБрдЭреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рддрд░реНрдХ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддреБрдореНрд╣рд╛рд░рд╛ !!) рд▓рдЧрддрд╛ рд╣реИред Numpy рд╕рд░рдгрд┐рдпрд╛рдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдиреБрдХреНрд░рдо рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫреЗ рд╕реЗ рдЕрдзрд┐рдХ рдиреБрдХрд╕рд╛рди рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред рдХреНрдпреЛрдВ рди рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдЕрдкрдиреА рдЪреАрдЬ рдмрдирдиреЗ рджреЗрдВ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрдирдХреЗ рдЗрдЪреНрдЫрд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░реЗрдВ?

рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдИ рдХреЛрдб рдореЗрдВ ABCs рдкрд░ рдЖрдЗрдВрд╕реНрдЯреАрди рдЬрд╛рдВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА,

рдЕрдм рдЬрдм рдЖрдк рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рдореЗрд░реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рд╕рднреА рдХреЛ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрд░рд╣, рд╡реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЪреИрдХ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрдкрд░реНрдпреБрдХреНрдд рдЬреИрд╕реЗ рддрд░реАрдХреЗ рдХрд┐рд╕реА рднреА рд╕рд░рдгреА-рдЬреИрд╕реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрднреЛрдХреНрддрд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЪрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣рдо рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ :)? рдЙрдиреНрд╣реЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╛рдпрдерди рдЕрдиреБрдХреНрд░рдо рдЪреАрдЬреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЯрд╛рдЗрдк рдПрдиреЛрдЯреЗрд╢рди рдХреВрд▓ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рдирд╢реЗ рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рд░рд╕реАрд▓рд╛ рд╕реБрдиреНрди рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реВрдВ рдЬреЛ # type: ignore рдХреЗ рд╕рд╛рде рдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдореИрдкреА рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЗ рдорди рдореЗрдВ рдХреМрди рд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ?

рдЦреИрд░, рд╕рдВрдХреЗрдд рдЯрд╛рдЗрдк рдХрд░реЗрдВ рдФрд░ рдЕрдиреНрдп рд╕рд░рдгреА рдЬреИрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реЛрдк рдХрд░реЗрдВ, рд╢рд╛рдпрдж рдПрдХ рдЕрдЪреНрдЫреА рдкреНрд░реЗрд░рдгрд╛ рд╣реИред рдореИрдВ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдпрд╛ рд╕реВрдЪреА рд╕реВрддреНрд░ рдореЗрд▓рд┐рдВрдЧ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВред рдЕрднреА, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХреНрдпрд╛ рд╕реЛрдЪрдирд╛ рд╣реИ, рдЯрд╛рдЗрдкрд┐рдВрдЧ рдмрди рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдпрд╣ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдЧрд╛ред

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