numpy.fromiter#

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

从可迭代对象创建一个新的1维数组.

参数:
iter可迭代对象

一个提供数组数据的迭代对象.

dtype数据类型

返回数组的数据类型.

在 1.23 版本发生变更: 现在支持对象和子数组的数据类型(请注意,对于子数组的数据类型,最终结果不是一维的).

countint, 可选

要从 iterable 中读取的项目数.默认值是 -1,这意味着读取所有数据.

likearray_like, 可选

引用对象以允许创建不是 NumPy 数组的数组.如果作为 like 传递的类数组对象支持 __array_function__ 协议,结果将由它定义.在这种情况下,它确保创建一个与通过此参数传递的对象兼容的数组对象.

在 1.20.0 版本加入.

返回:
outndarray

输出数组.

备注

指定 count 以提高性能.它允许 fromiter 预分配输出数组,而不是按需调整其大小.

示例

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

一个精心构建的子数组数据类型将导致更高维的结果:

>>> 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]])