2 条题解

  • 0
    @ 2026-3-26 17:43:30

    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)
    

    代码详解

    1. generate() —— 生成器函数,产生 0-9
    2. np.fromiter(...) —— 从可迭代对象创建数组
    3. dtype=float —— 指定数据类型
    4. 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)
    

    核心知识点

    1. np.fromiter() —— 从可迭代对象创建数组
    2. 生成器 —— 惰性求值,节省内存
    3. count 参数优化内存分配
    • 0
      @ 2026-3-25 15:38:11

      NumPy038 题解

      参考代码

      import numpy as np
      n = int(input())
      np.set_printoptions(threshold=n)
      print(np.arange(n))
      
      • 1

      信息

      ID
      89
      时间
      1000ms
      内存
      256MiB
      难度
      (无)
      标签
      (无)
      递交数
      0
      已通过
      0
      上传者