numpy.fromiter 函数是 NumPy 提供的一种用于从可迭代对象创建一维数组的方法。主要优势在于能够高效地从生成器或其他迭代器中创建数组,而无需先将迭代器的数据转换为列表或其他中间形式。本文主要介绍一下NumPy中fromiter方法的使用。

numpy.fromiter

numpy.fromiter(iterable, dtype, count=-1)

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

参数:

iterable :iterable object

提供数组数据的可迭代对象。

dtype :data-type

返回数组的数据类型。

count:int, 可选

从iterable中读取的项目数。默认值为-1,表示读取所有数据。

返回值:

outndarray

输出数组。

Notes

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

例子

1)使用生成器创建数组

import numpy as np

# 示例:使用生成器创建数组
def generate_numbers():
    for i in range(10):
        yield i*2

# 使用 numpy.fromiter 从生成器创建数组
iterator = generate_numbers()
array = np.fromiter(iterator, dtype=int)

print(array)

2)从列表创建数组

import numpy as np


data = [1, 2, 3, 4, 5]
array = np.fromiter(data, dtype=int)

print(array)

3)指定读取项目数

import numpy as np

data = (i for i in range(10))
array = np.fromiter(data, dtype=int, count=5)
print(array)
# 输出: [0 1 2 3 4]

4)使用示例

import numpy as np

# 创建一个生成器,生成0到4的平方
iterable = (x * x for x in range(5))

# 使用 numpy.fromiter 从生成器创建浮点型数组
array = np.fromiter(iterable, dtype=float)

print(array)
# 输出: array([ 0.,  1.,  4.,  9., 16.])

文档numpy.fromiter.html

推荐文档

相关文档

大家感兴趣的内容

随机列表