Actually, while working on https://github.com/numpy/numpy/issues/7264 I realized that the memory efficiency (one-pass) argument is simply incorrect:

import numpy as np

class A:

def __getitem__(self, i):

print("A get item", i)

return [np.int8(1), np.int8(2)][i]

def __len__(self):

return 2

print(repr(np.array(A())))

This prints out

A get item 0

A get item 1

A get item 2

A get item 0

A get item 1

A get item 2

A get item 0

A get item 1

A get item 2

array([1, 2], dtype=int8)

i.e. the sequence is "turned into a concrete sequence" no less than 3 times.

Antony

2016-01-19 11:33 GMT-08:00 Stephan Sahm <Stephan.Sahm@gmx.de>:

just to not prevent it from the black hole - what about integrating fromiter into array? (see the post by Benjamin Root)for me personally, taking the first element for deducing the dtype would be a perfect default way to read generators. If one wants a specific other dtype, one could specify it like in the current fromiter method.On 15 December 2015 at 08:08, Stephan Sahm <Stephan.Sahm@gmx.de> wrote:I would like to further push Benjamin Root's suggestion:"Therefore, I think it is not out of the realm of reason that passing a generator object and a dtype could then delegate the work under the hood to np.fromiter()? I would even go so far as to raise an error if one passes a generator without specifying dtype to np.array(). The point is to reduce the number of entry points for creating numpy arrays."would this be ok?On Mon, Dec 14, 2015 at 6:50 PM Robert Kern <robert.kern@gmail.com> wrote:_______________________________________________On Mon, Dec 14, 2015 at 5:41 PM, Benjamin Root <ben.v.root@gmail.com> wrote:

>

> Heh, never noticed that. Was it implemented more like a generator/iterator in older versions of Python?No, it predates generators and iterators so it has always had to be implemented like that.

--

Robert Kern

NumPy-Discussion mailing list

NumPy-Discussion@scipy.org

https://mail.scipy.org/mailman/listinfo/numpy-discussion

_______________________________________________

NumPy-Discussion mailing list

NumPy-Discussion@scipy.org

https://mail.scipy.org/mailman/listinfo/numpy-discussion