рд╡рд╣рд╛рдБ рдирдорд╕реНрддреЗред
рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ ndarray(buffer=memoryview)
рдЕрдЬрдЧрд░ 2 рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:
In [1]: sys.version
Out[1]: '2.7.10 (default, May 26 2015, 13:16:40) \n[GCC 4.9.2]'
In [2]: numpy.__version__
Out[2]: '1.10.0.dev0+9e7a0b2'
In [3]: b = bytearray([1,2,3])
In [4]: b
Out[4]: bytearray(b'\x01\x02\x03')
In [5]: m = memoryview(b)
In [6]: m
Out[6]: <memory at 0x7fa1f4e59b50>
рдореЗрдореЛрд░реАрд╡реНрдпреВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд ndarray рдмрдирд╛рдирд╛ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:
In [7]: a = ndarray((3,), buffer=m, dtype=uint8)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-32-1528204f5358> in <module>()
----> 1 a = ndarray((3,), buffer=m, dtype=uint8)
TypeError: expected a readable buffer object
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рдЕрдЧрд░ рд╣рдо рдореЗрдореЛрд░реАрд╡реНрдпреВ рдХреЛ рд╕рд░рдгреА () рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:
In [8]: a = array(m, copy=False)
In [9]: a
Out[9]: array([1, 2, 3], dtype=uint8)
In [10]: a[0] = 5
In [11]: a
Out[11]: array([5, 2, 3], dtype=uint8)
In [12]: b
Out[12]: bytearray(b'\x05\x02\x03')
[7] рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдЬрдЧрд░ 3 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА,
рдХрд┐рд░рд┐рд▓
IIRC, рд╣рдордиреЗ рдкрд╛рдпрдерди 2 рдореЗрдВ рдореЗрдореЛрд░реАрд╡реНрдпреВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ 2.7 рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕реЗ 2.6 рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╣рдо рдЕрдм рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╢рд╛рдпрдж рдЙрд╕ рдирд┐рд░реНрдгрдп рдкрд░ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рд╛рдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рдпрдерди 2 рдкрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИ - рд╕рд░рдгреА() рдореЗрдореЛрд░реАрд╡реНрдпреВ ([8-12] рдКрдкрд░) рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдХреЗрд╡рд▓ ndarray рдирд┐рд░реНрдорд╛рддрд╛ рдмрдлрд░ = рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реАрд╡реНрдпреВ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдореЗрдореЛрд░реАрд╡реНрдпреВ рдХреЗ рд▓рд┐рдП рднреА рдмреЗрд╣рддрд░ рд╕рдорд░реНрдерди рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдЗрд╕реЗ рдмрдВрдж рдХрд░рддреЗ рд╣реБрдП, Python 2.x рдХреЗрд╡рд▓ рдореБрджреНрджреЗ рдЕрдм рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЬрд▓реНрдж рд╣реА 2.7 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЫреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред