2 条题解

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

    NUMPY037 题解:创建行值递增的矩阵

    题目

    创建一个 5×5 矩阵,每行值从 0 到 4 递增。

    解题思路

    利用 NumPy 的广播机制,用一维数组与二维数组相加。

    代码

    import numpy as np
    Z = np.zeros((5, 5))
    Z += np.arange(5)
    print(Z)
    

    代码详解

    1. np.zeros((5, 5)) —— 创建 5×5 全零矩阵
    2. np.arange(5) —— 创建 [0, 1, 2, 3, 4]
    3. Z += ... —— 原地加法,利用广播

    广播过程

    原本 Z:
    [[0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0]]
    
    加上 [0,1,2,3,4]:
    [[0, 1, 2, 3, 4],
     [0, 1, 2, 3, 4],
     [0, 1, 2, 3, 4],
     [0, 1, 2, 3, 4],
     [0, 1, 2, 3, 4]]
    

    其他方法

    # 方法2:np.tile
    Z = np.tile(np.arange(0, 5), (5, 1))
    
    # 方法3:直接创建
    Z = np.array([[0,1,2,3,4] for _ in range(5)])
    

    核心知识点

    1. 广播机制 —— 自动扩展数组形状
    2. += 操作符 —— 原地更新
    3. np.tile() —— 平铺数组
    • 0
      @ 2026-3-25 15:38:08

      NumPy037 题解

      题目分析

      本题要求忽略nan计算数组元素和。

      参考代码

      import numpy as np
      Z = eval(input())
      print(np.nansum(Z))
      
      • 1

      信息

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