numpy.fromiter#
- numpy.fromiter(iter, dtype, count=-1, *, like=None)#
从一个可迭代对象创建一个新的 1 维数组.
- 参数:
- iteriterable object
一个为数组提供数据的可迭代对象.
- dtypedata-type
返回的数组的数据类型.
在 1.23 版本发生变更: 现在支持对象和子数组数据类型(注意,对于子数组数据类型,最终结果不是 1-D).
- 计数整数,可选
要从 iterable 对象读取的条目数. 默认值为 -1,表示读取所有数据.
- likearray_like, optional
参考对象以允许创建非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.])
精心构造的子数组 dtype 将导致更高维度的结果:
>>> 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]])