当前位置: 首页 > news >正文

NumPy 中的取整函数

NumPy中的取整函数详解

NumPy 提供了多种取整函数,用于对数组中的元素进行不同类型的舍入操作。以下是主要的取整函数及其用法:

1. numpy.round() / numpy.around()

功能​:四舍五入到指定的小数位数

import numpy as npa = np.array([1.234, 2.567, 3.789])
print(np.round(a, 2))  # 保留2位小数
# 输出: [1.23 2.57 3.79]print(np.round(a))     # 默认舍入到整数
# 输出: [1. 3. 4.]

 

 

 

如果需要传统四舍五入,可以手动实现:

 

2. numpy.floor()

功能​:向下取整(返回不大于输入值的最大整数)

a = np.array([1.2, -1.7, 3.0])
print(np.floor(a))
# 输出: [ 1. -2.  3.]

3. numpy.ceil()

功能​:向上取整(返回不小于输入值的最小整数)

a = np.array([1.2, -1.7, 3.0])
print(np.ceil(a))
# 输出: [ 2. -1.  3.]

4. numpy.trunc()

功能​:截断小数部分(向零取整)

a = np.array([1.7, -1.7, 3.0])
print(np.trunc(a))
# 输出: [ 1. -1.  3.]

5. numpy.fix()

功能​:与trunc()类似,向零取整

a = np.array([1.7, -1.7, 3.0])
print(np.fix(a))
# 输出: [ 1. -1.  3.]

6. numpy.rint()

功能​:四舍五入到最近的整数(与round()类似,但不支持指定小数位数)

a = np.array([1.2, 1.5, 1.7])
print(np.rint(a))
# 输出: [1. 2. 2.]

7. numpy.modf()

功能​:返回数组的小数和整数部分

a = np.array([1.2, 3.5, -2.7])
frac, int_part = np.modf(a)
print(frac)      # 小数部分: [ 0.2  0.5 -0.7]
print(int_part)  # 整数部分: [ 1.  3. -2.]

 

高级用法

1、处理复数

大多数取整函数也适用于复数,会对实部和虚部分别取整:

a = np.array([1.2 + 2.7j, 3.5 - 1.3j])
print(np.round(a))
# 输出: [1.+3.j 4.-1.j]

2、指定输出数组

可以指定输出数组来保存结果:

a = np.array([1.2, 2.7, 3.5])
result = np.empty_like(a)
np.floor(a, out=result)
print(result)
# 输出: [1. 2. 3.]

np.empty_like() 是 NumPy 中的一个函数,用于创建一个与输入数组 a ​形状和数据类型相同的新数组,但不初始化数组元素的值​(即数组中的值是未定义的,可能是内存中的任意值)。

3、处理大数组

对于大数组,可以使dtype参数控制输出类型

a = np.array([1.2, 2.7, 3.5], dtype=np.float32)
print(np.floor(a, dtype=np.float64))
# 输出: [1. 2. 3.] (但数据类型为float64)

例题

程序中的代码使用了 numpy.round() 函数对数组 [-1.5, 1.5] 进行四舍五入。numpy.round() 的规则是“四舍五入到最近的偶数”,因此:-1.5 会舍入到 -2.0,1.5 会舍入到 2.0。输出结果为:[-2. 2.]

当小数部分 ​恰好是 0.5​ 时,numpy.round() 会舍入到最近的偶数​(即“银行家舍入法”或“四舍六入五成双”)。

现在分析各选项:

​A. np.floor(arr)。floor向下取整:

  • -1.5 → -2.0
  • 1.5 → 1.0
    输出:[-2. 1.](不匹配)

​B. np.ceil(arr)
ceil 是向取整:

  • -1.5 → -1.0
  • 1.5 → 2.0
    输出:[-1. 2.](不匹配)

​C. np.trunc(arr)
trunc向零截断

  • -1.5 → -1.0
  • 1.5 → 1.0
    输出:[-1. 1.](不匹配)

​D. np.rint(arr)
rint 的功能round 相同,也是“四舍五入到最近的偶数”:

  • -1.5 → -2.0
  • 1.5 → 2.0
    输出:[-2. 2.](匹配)

因此,正确答案是 ​D

http://www.dtcms.com/a/316546.html

相关文章:

  • 如何在Android设备上删除多个联系人(3种方法)
  • Java项目:基于SSM框架实现的公益网站管理系统【ssm+B/S架构+源码+数据库+毕业论文+答辩PPT+远程部署】
  • 解锁高效敏捷:2025年Scrum项目管理工具的核心应用解析
  • 智慧社区物业管理平台登录流程全解析:从验证码到JWT认证
  • 关于熵减 - 双线线圈
  • 前端性能测试:从工具到实战全解析
  • 类内部方法调用,自注入避免AOP失效
  • Flutter 国际化
  • OpenSpeedy绿色免费版下载,提升下载速度,网盘下载速度等游戏变速工具
  • spring boot 加载失败 异常没有曝漏出来
  • 基于Java AI(人工智能)生成末日题材的实践
  • 2. JS 有哪些数据类型
  • 【网络运维】Linux:系统启动原理与配置
  • 虚幻GAS底层原理解剖一(开篇)
  • ⭐CVPR2025 用于个性化图像生成的 TFCustom 框架
  • python可视化--Seaborn图形绘制方法和技巧,Bokeh图形绘制方法和技巧
  • 虚幻GAS底层原理解剖二 (GE)
  • 安全策略一体化落地指南:从定义到执行的闭环架构
  • 自适应爬虫代理高频数据抓取
  • 数据大集网:全链路赋能下的获客渠道革新与行业实践
  • 王阳明心学笔记
  • 【软考中级网络工程师】2021年下半年上午真题及答案解析
  • C++进阶—特殊类设计
  • Java面试宝典:深入解析JVM运行时数据区
  • ArrayList 深度剖析:从底层原理到性能优化的实战指南
  • python 之 autogen-core《三》主题与订阅
  • TypeScript:融合 JS、ES6 与 Vue3 的前端开发新范式
  • 大模型——Qwen开源会写中文的生图模型Qwen-Image
  • 【Dify学习笔记】:保留原所有数据,升级Dify版本
  • Linux(16)——进程间通信(下)