numpy.fromiter#

numpy.fromiter(iter, dtype, count=-1, *, like=None)#

Create a new 1-dimensional array from an iterable object.

Parameters:
iteriterable object

An iterable object providing data for the array.

dtypedata-type

The data-type of the returned array.

Changed in version 1.23: Object and subarray dtypes are now supported (note that the final result is not 1-D for a subarray dtype).

countint, optional

The number of items to read from iterable. The default is -1, which means all data is read.

likearray_like, optional

Reference object to allow the creation of arrays which are not NumPy arrays. If an array-like passed in as like supports the __array_function__ protocol, the result will be defined by it. In this case, it ensures the creation of an array object compatible with that passed in via this argument.

New in version 1.20.0.

Returns:
outndarray

The output array.

Notes

Specify count to improve performance. It allows fromiter to pre-allocate the output array, instead of resizing it on demand.

Examples

>>> import numpy as np
>>> iterable = (x*x for x in range(5))
>>> np.fromiter(iterable, float)
array([  0.,   1.,   4.,   9.,  16.])

A carefully constructed subarray dtype will lead to higher dimensional results:

>>> iterable = ((x+1, x+2) for x in range(5))
>>> np.fromiter(iterable, dtype=np.dtype((int, 2)))
array([[1, 2],
       [2, 3],
       [3, 4],
       [4, 5],
       [5, 6]])