Numpy: ndarray рдмрдлрд╝рд░ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реАрд╡реНрдпреВ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ = python2 рдХреЗ рддрд╣рдд

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдЬреВрди 2015  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: numpy/numpy

рд╡рд╣рд╛рдБ рдирдорд╕реНрддреЗред

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ 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 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА,
рдХрд┐рд░рд┐рд▓

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

IIRC, рд╣рдордиреЗ рдкрд╛рдпрдерди 2 рдореЗрдВ рдореЗрдореЛрд░реАрд╡реНрдпреВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ 2.7 рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕реЗ 2.6 рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╣рдо рдЕрдм рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╢рд╛рдпрдж рдЙрд╕ рдирд┐рд░реНрдгрдп рдкрд░ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рд╛рдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рдпрдерди 2 рдкрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИ - рд╕рд░рдгреА() рдореЗрдореЛрд░реАрд╡реНрдпреВ ([8-12] рдКрдкрд░) рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдХреЗрд╡рд▓ ndarray рдирд┐рд░реНрдорд╛рддрд╛ рдмрдлрд░ = рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реАрд╡реНрдпреВ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╣рдо рдореЗрдореЛрд░реАрд╡реНрдпреВ рдХреЗ рд▓рд┐рдП рднреА рдмреЗрд╣рддрд░ рд╕рдорд░реНрдерди рдЪрд╛рд╣рддреЗ рд╣реИрдВ

рдЗрд╕реЗ рдмрдВрдж рдХрд░рддреЗ рд╣реБрдП, Python 2.x рдХреЗрд╡рд▓ рдореБрджреНрджреЗ рдЕрдм рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЬрд▓реНрдж рд╣реА 2.7 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЫреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред

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