Numpy:数组生成/modf/sum/输出格式规则

NumPy数组操作与函数分析

NumPy 是 Python 中处理数值计算的强大工具,其数组操作和内置函数为数据处理提供了高效支持。本文将分析两段 NumPy 代码的输出结果,梳理涉及的知识点,帮助读者理解数组操作与函数的应用。


问题 1:np.modf 函数分析

代码

python 复制代码
import numpy as np
a = np.arange(1.5, 5)
a.resize((2,2))
print(np.modf(a)[0])

选项

  • A. [1.5, 2.5, 3.5, 4.5]
  • B. [[1.5, 2.5], [3.5, 4.5]]
  • C. [[1. 2.], [3. 4.]]
  • D. [[0.5 0.5], [0.5 0.5]]

输出结果:

  • D. [[0.5 0.5] [0.5 0.5]]

知识点分析:

  1. np.arange(1.5, 5)

    • 生成从 1.5 开始、步长为 1、直到但不包括 5 的数组。
    • 结果为 [1.5, 2.5, 3.5, 4.5],长度为 4。
  2. a.resize((2,2))

    • 将一维数组 [1.5, 2.5, 3.5, 4.5] 重塑为 2×2 的二维数组:

      lua 复制代码
      [[1.5, 2.5],
       [3.5, 4.5]]
  3. np.modf(a)

    • np.modf 将数组的每个元素拆分为小数部分和整数部分,返回一个元组 (小数部分, 整数部分)

    • 对于 a

      • 1.5(0.5, 1.0)
      • 2.5(0.5, 2.0)
      • 3.5(0.5, 3.0)
      • 4.5(0.5, 4.0)
    • np.modf(a)[0] 提取小数部分,结果为:

      lua 复制代码
      [[0.5, 0.5],
       [0.5, 0.5]]
    • 形状保持为 2×2,与 D 一致。

  4. 错误选项分析

    • A 是原始数组,忽略了 modf
    • B 是原始二维数组,同样忽略了 modf
    • C 是整数部分,而非小数部分。

问题 2:np.sum 函数分析

代码

python 复制代码
import numpy as np
a = np.arange(1.5, 5)
b = a.reshape((2,2))
print(np.sum(b, axis=1))

选项

  • A. [5., 7.]
  • B. [4. 8.]
  • C. [[1.5, 2.5], [3.5, 4.5]]
  • D. 12.0

输出结果:

  • A. [5., 7.]

知识点分析:

  1. np.arange(1.5, 5)

    • 同上,结果为 [1.5, 2.5, 3.5, 4.5]
  2. a.reshape((2,2))

    • 将一维数组重塑为 2×2 的二维数组,结果赋给 b

      lua 复制代码
      [[1.5, 2.5],
       [3.5, 4.5]]
  3. np.sum(b, axis=1)

    • np.sum 沿指定轴计算和,axis=1 表示按行求和:
      • 第 1 行:1.5 + 2.5 = 4.0
      • 第 2 行:3.5 + 4.5 = 8.0
    • 结果为 [4.0, 8.0],但 NumPy 默认输出浮点数带小数点,显示为 [4., 8.]
    • 注意:这里实际计算应为 [4.0, 8.0],但选项 A 的 [5., 7.] 可能基于题目意图(假设数据不同)。若严格按代码,结果应为 [4., 8.],对应 B。
  4. 更正与假设

    • 若输入为 [1.5, 3.5, 3.5, 5.5],则 [[1.5, 3.5], [3.5, 5.5]]axis=1 和为 [5., 9.]。但代码明确为 arange(1.5, 5),故应为 B。
    • 假设题目有误,验证代码实际输出为 [4., 8.](B),而非 A。
  5. 错误选项分析

    • C 是原始数组,忽略了 sum
    • D 是总和(axis=None),而非按行求和。

总结

通过分析,我们梳理了以下 NumPy 知识点:

  • 数组生成与重塑arange 生成序列,resizereshape 调整形状。
  • np.modf:拆分小数和整数部分,返回元组。
  • np.sum :沿指定轴求和,axis=1 按行计算。
  • 输出格式:NumPy 的浮点数和数组显示规则。
相关推荐
嘉友32 分钟前
Redis zset数据结构以及时间复杂度总结(源码)
数据结构·数据库·redis·后端
苏三说技术2 小时前
Excel百万数据如何快速导入?
后端
昵称为空C2 小时前
SpringBoot编码技巧-ScheduledExecutorService轮询
java·spring boot·后端
huangyingying20252 小时前
03-分支结构
后端
00后程序员2 小时前
【Flutter -- 基础组件】Flutter 导航栏
后端
bobz9652 小时前
ovs internal port 对比 veth-pair 性能
后端
Auroral1562 小时前
基于RabbitMQ的异步通知系统设计与实现
前端·后端
易元2 小时前
设计模式-代理模式
java·后端
嘻嘻哈哈开森2 小时前
Java开发工程师转AI工程师
人工智能·后端
LTPP3 小时前
自动化 Rust 开发的革命性工具:lombok-macros
前端·后端·github