2 条题解
-
0
NUMPY038 题解:使用生成器创建数组
题目
使用生成器函数创建数组。
解题思路
使用
np.fromiter()从可迭代对象创建数组。代码
import numpy as np def generate(): for x in range(10): yield x Z = np.fromiter(generate(), dtype=float, count=-1) print(Z)代码详解
generate()—— 生成器函数,产生 0-9np.fromiter(...)—— 从可迭代对象创建数组dtype=float—— 指定数据类型count=-1—— 读取全部元素(-1 表示未知长度)
输出
[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]fromiter 的参数
np.fromiter(iterable, dtype, count=-1)参数 说明 iterable 可迭代对象 dtype 数据类型 count 要读取的元素数,-1 表示全部 其他创建方式
# 从列表创建 Z = np.array(list(range(10))) # 从列表创建(直接) Z = np.fromiter(range(10), dtype=float) # 使用 map Z = np.fromiter(map(lambda x: x**2, range(10)), dtype=float)核心知识点
np.fromiter()—— 从可迭代对象创建数组- 生成器 —— 惰性求值,节省内存
count参数优化内存分配
- 1
信息
- ID
- 89
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者