[issue14130] memoryview: add multi-dimensional indexing and slicing

2014-10-14 Thread Stefan Krah

Changes by Stefan Krah stefan-use...@bytereef.org:


--
assignee: skrah - 

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14130
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14130] memoryview: add multi-dimensional indexing and slicing

2014-02-10 Thread Ian Beaver

Ian Beaver added the comment:

Its not multi-dimensional slicing  to get a subset of objects as in Numpy, but 
more the ability to slice a buffer containing a multi-dimensional array as raw 
bytes.  Buffer objects in Python2.7 are dimensionality naive so it works fine.  
You were correct that I was testing against Python3.2, in Python3.3 the slicing 
of ndim  1 works, however only for reading from the buffer.  I still can't 
write back into a memoryview object with ndim  1 in Python 3.3.

Python 2.7.3:
 import numpy as np
 arr = np.zeros(shape=(100,100))
 type(arr.data)
type 'buffer'
 arr.data[0:10]
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
 

Python 3.2.3:
 import numpy as np
 arr = np.zeros(shape=(100,100))
 type(arr.data)
class 'memoryview'
 arr.data[0:10]
Traceback (most recent call last):
  File stdin, line 1, in module
NotImplementedError
 

Python 3.3.3:
 import numpy as np
 arr = np.zeros(shape=(100,100))
 type(arr.data)
class 'memoryview'
 arr.data[0:10]
memory at 0x7faaf1d03a48
 


However to write data back into a buffer:

Python 2.7.3:
 import numpy as np
 arr = np.zeros(shape=(100,100))
 arr.data[0:10] = '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
 

Python 3.2.3:
 import numpy as np
 arr = np.zeros(shape=(100,100))
 arr.data[0:10] = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Traceback (most recent call last):
  File stdin, line 1, in module
NotImplementedError
 

Python 3.3.3:
 import numpy as np
 arr = np.zeros(shape=(100,100))
 arr.data[0:10] = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Traceback (most recent call last):
  File stdin, line 1, in module
NotImplementedError: memoryview assignments are currently restricted to ndim = 1
 


Also the slice in Python3.3 is not the same as just returning a chunk of raw 
bytes from the memory buffer, instead of a bytes object the indexing behaves 
similar to numpy array indexes and you get the (sub) array items back as Python 
objects.

Python2.7.3:
 import numpy as np
 arr = np.zeros(shape=(100,100))
 arr.data[0:10]
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
len(bytes(arr.data[0:10]))
10

Python3.3.3:
 import numpy as np
 arr = np.zeros(shape=(100,100))
 arr.data[0:10]
memory at 0x7f109a71ea48
 len(bytes(arr.data[0:10]))
8000

This is not a big deal in my case since I already have numpy arrays I can just 
use bytes(arr.flat[start:end]) to scan through the array contents as byte 
chunks, but that would not be possible with just a memoryview object like it 
was with the Python2 buffer object without converting it to something else or 
dropping to ctypes and iterating over the memory addresses and dereferencing 
the contents.

So in Python3.3 its halfway to the functionality in Python2.7, I can send 
chunks of the data through a compressed or encrypted stream, but I can't 
rebuild the data on the other side without first creating a bytearray and 
eating the cost of a copy into a memoryview.  All I really need is a way to 
reconstruct the original memoryview buffer in memory from a stream of bytes 
without having to make a temporary object first and then copy its contents into 
the final memoryview object when it is complete.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14130
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14130] memoryview: add multi-dimensional indexing and slicing

2014-02-08 Thread Nick Coghlan

Nick Coghlan added the comment:

memoryview supports slicing - it just doesn't support NumPy style 
*multi-dimensional* slicing (and buffer doesn't support that either).

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14130
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14130] memoryview: add multi-dimensional indexing and slicing

2014-02-08 Thread Nick Coghlan

Nick Coghlan added the comment:

(However, if you're on Python 3.2, then you'll likely need to upgrade to Python 
3.3 - memoryview *does* have a lot of additional limitations in Python 3.2)

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14130
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14130] memoryview: add multi-dimensional indexing and slicing

2014-02-08 Thread Stefan Krah

Stefan Krah added the comment:

Ian, could you please provide an example where multi-dimensional
indexing and slicing works in 2.x but not in 3.3?

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14130
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14130] memoryview: add multi-dimensional indexing and slicing

2014-02-07 Thread Ian Beaver

Ian Beaver added the comment:

If there is any way to get this implemented, it is needed.  For one, the docs 
on memoryview make no mention that indexing and slicing doesn't work with 
multi-dimensional data which led me to believe it was supported until I tried 
using it.  A second reason is currently this represents a loss of functionality 
from the buffer type in python2.  In porting code using the buffer type in 
python2 to python3, you get a very unhelpful NotImplementedError with no 
description when trying to slice a memoryview.  There is no workaround but to 
call tobytes() and copy the data in memory to an object that supports slicing, 
but for very large objects this defeats the primary purpose of using buffers in 
the first place, which is to avoid memory copies.

--
nosy: +undercoveridiot

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14130
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14130] memoryview: add multi-dimensional indexing and slicing

2013-08-30 Thread Stefan Krah

Stefan Krah added the comment:

I would probably work on it (it's basically implemented in _testbuffer.c),
but I'm not sure if the NumPy community will actually use the feature.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14130
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14130] memoryview: add multi-dimensional indexing and slicing

2013-08-01 Thread DLowell

DLowell added the comment:

Is this issue still being worked on?

--
nosy: +DLowell

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14130
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14130] memoryview: add multi-dimensional indexing and slicing

2012-08-20 Thread Alexander Belopolsky

Changes by Alexander Belopolsky alexander.belopol...@gmail.com:


--
nosy: +belopolsky

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14130
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14130] memoryview: add multi-dimensional indexing and slicing

2012-02-26 Thread Stefan Krah

Changes by Stefan Krah stefan-use...@bytereef.org:


--
assignee: skrah
nosy: ncoghlan, pitrou, pv, skrah, teoliphant
priority: normal
severity: normal
stage: needs patch
status: open
title: memoryview: add multi-dimensional indexing and slicing
type: enhancement

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14130
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14130] memoryview: add multi-dimensional indexing and slicing

2012-02-26 Thread Stefan Krah

New submission from Stefan Krah stefan-use...@bytereef.org:

The PEP-3118 authors originally planned to have support for multi-dimensional 
indexing and slicing in memoryview.

Since memoryview now already has the capabilities of multi-dimensional
list representations and comparisons, this would be a nice addition
to the feature set.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14130
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14130] memoryview: add multi-dimensional indexing and slicing

2012-02-26 Thread Stefan Krah

Changes by Stefan Krah stefan-use...@bytereef.org:


--
components: +Interpreter Core
versions: +Python 3.3

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14130
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com