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 的浮点数和数组显示规则。
相关推荐
程序员清风12 分钟前
贝壳一面:年轻代回收频率太高,如何定位?
java·后端·面试
考虑考虑24 分钟前
Java实现字节转bcd编码
java·后端·java ee
AAA修煤气灶刘哥1 小时前
ES 聚合爽到飞起!从分桶到 Java 实操,再也不用翻烂文档
后端·elasticsearch·面试
爱读源码的大都督1 小时前
Java已死?别慌,看我如何用Java手写一个Qwen Code Agent,拯救Java
java·人工智能·后端
星辰大海的精灵1 小时前
SpringBoot与Quartz整合,实现订单自动取消功能
java·后端·算法
天天摸鱼的java工程师2 小时前
RestTemplate 如何优化连接池?—— 八年 Java 开发的踩坑与优化指南
java·后端
一乐小哥2 小时前
一口气同步10年豆瓣记录———豆瓣书影音同步 Notion分享 🚀
后端·python
LSTM972 小时前
如何使用C#实现Excel和CSV互转:基于Spire.XLS for .NET的专业指南
后端
三十_2 小时前
【NestJS】构建可复用的数据存储模块 - 动态模块
前端·后端·nestjs
武子康2 小时前
大数据-91 Spark广播变量:高效共享只读数据的最佳实践 RDD+Scala编程
大数据·后端·spark