numpy 基本运算(加减乘除、四舍五入、向上取整、向下取整)

import numpy as np

1、切片一维数组

def mathCal():
    """
    基本数学运算
    :return:
    """
    # 加法
    arr1 = np.array([1, 2])
    arr2 = np.array([3, 4])

    # 加法
    add1 = arr1 + arr2
    add2 = np.add(arr1, arr2)

    # 减法
    sub1 = arr1 - arr2
    sub2 = np.subtract(arr1, arr2)

    # 乘法
    mult1 = arr1 * arr2
    mult2 = np.multiply(arr1, arr2)

    # 除法
    div1 = arr1 / arr2
    div2 = np.divide(arr1, arr2)
    div3 = np.divide(arr1, 10)

    # 幂运算
    power1 = arr1 ** arr2
    power2 = np.power(arr1, arr2)

    print(add1)
    print(add2)
    print(sub1)
    print(sub2)
    print(mult1)
    print(mult2)
    print(div1)
    print(div2)
    print(div3)
    print(power1)
    print(power2)

原始数据

	arr1 = [1, 2]
    arr2 = [3, 4]

add1 add2 加法 返回结果

	[4 6]

sub1 sub2 减法 返回结果

	[-2 -2]

mult1 mult2 乘法 返回结果

	[3 8]

div1 div2 除法 返回结果

	[0.33333333 0.5       ]

div3 除法 返回结果

	[0.1 0.2]

power1 power2 幂运算 返回结果

	[ 1 16]

2、四舍五入、向上取整、向下取整

def aroundFun():
    """
    四舍五入相关方法
    :return:
    """
    data = [1.1234, 1.5678, 0, -1.1234, -1.5678]

    source = np.array(data)

    # 四舍五入,取整
    around = np.around(source)

    # 四舍五入,保留小数点2位
    around2 = np.around(source, 2)

    # 四舍五入,并向上取整
    ceil = np.ceil(source)

    # 四舍五入,并向下取整
    floor = np.floor(source)

    print(around)
    print(around2)
    print(ceil)
    print(floor)

原始数据

	[1.1234, 1.5678, 0, -1.1234, -1.5678]

around 四舍五入,取整 返回结果

	[ 1.  2.  0. -1. -2.]

around2 四舍五入,保留小数点2位 返回结果

	[ 1.12  1.57  0.   -1.12 -1.57]

ceil 四舍五入,并向上取整 返回结果

	[ 2.  2.  0. -1. -1.]

floor 四舍五入,并向下取整 返回结果

	[ 1.  1.  0. -2. -2.]
<think>好的,我现在要解决用户的问题:“如何使用numpy进行四舍五入取整”。首先,我需要确认用户的具体需求。他们可能想了解numpy四舍五入的函数以及如何使用它来处理数组中的数值。 我记得numpy有一个round函数,或者叫around,对吗?根据用户提供的引用内容,特别是引用3,里面提到np.around是np.round的别名,所以这两个函数应该是一样的。用户可能想知道如何调用这个函数,并且是否需要特定参数。 接下来,我应该考虑基本的用法。例如,对于单个数字或数组,如何使用np.round。比如,np.round(2.5)的结果是2还是3?根据常规的四舍五入规则,中间值0.5应该向上取整,所以2.5应该变成2?或者可能根据numpy的实现方式不同?需要验证这一点,可能实际测试一下,但根据引用3中的例子,Decimal的quantize方法使用ROUND_UP的话,-1.234会变成-1.23,这可能和numpy的处理不同,但用户的问题是关于numpy的round。 另外,用户提到的引用4中使用了np.roots来计算多项式的根,这可能和问题无关,但需要确保回答集中在四舍五入上。 可能需要举几个例子,比如如何处理浮点数,不同小数位的情况。例如,保留0位小数就是取整到最近的整数。这时候应该用np.round(x, 0)或者直接np.round(x)。 还要注意,用户可能需要知道如何对数组进行操作,而不仅仅是标量。比如,如果有一个numpy数组,如何一次性处理所有元素。这可能涉及到函数的参数,比如decimals参数,用于指定保留的小数位数。 另外,是否有其他取整函数,比如np.floor、np.ceil,这些和np.round的区别是什么?用户可能也会感兴趣,但问题集中在四舍五入到最近的整数,所以可能不需要深入讨论其他函数,但可以稍微提及。 需要确保回答正确引用用户提供的引用内容。例如,引用3提到np.around是别名,所以在回答中可以指出这一点,并说明两种写法都可以使用。 还要注意语法是否正确,比如函数调用的格式,是否需要导入numpy等。根据引用1,用户可能已经知道如何导入numpy,但可能需要再次提醒。 最后,生成相关问题时要围绕numpy四舍五入和其他取整方法,可能涉及性能、应用场景、不同函数的比较等。 现在整理思路,确保回答结构清晰,步骤正确,并包含示例代码。同时检查是否有遗漏点,比如处理负数的情况,或者np.round在不同情况下的行为是否一致。</think>要使用NumPy进行四舍五入取整,可以通过以下步骤实现: ### 1. 基本语法 使用$np.round()$或$np.around()$(两者等价)对数组或标量进行四舍五入: ```python import numpy as np # 标量示例 print(np.round(2.3)) # 输出 2.0 print(np.round(2.7)) # 输出 3.0 # 数组示例 arr = np.array([1.2, 2.5, 3.8]) print(np.round(arr)) # 输出 [1. 2. 4.] ``` ### 2. 指定小数位数 通过参数$decimals$控制保留小数位数(默认$decimals=0$,即取整): ```python print(np.round(3.1415, decimals=2)) # 输出 3.14 print(np.round([2.635, 7.894], decimals=1)) # 输出 [2.6 7.9] ``` ### 3. 替代方法 - **原位操作**:直接调用数组的$round()$方法 ```python arr = np.array([1.2, 2.5, 3.8]) arr.round() # 返回 [1. 2. 4.] ``` - **其他取整函数**(非四舍五入): ```python np.floor(2.7) # 向下取整 → 2.0 np.ceil(2.3) # 向上取整 → 3.0 np.trunc(-3.7) # 截断取整 → -3.0 ``` ### 注意事项 - 当数值恰好在两个整数中间时(如$2.5$),$np.round()$会舍入到最接近的**偶数**(即“银行家舍入法”): ```python print(np.round(2.5)) # 输出 2.0 print(np.round(3.5)) # 输出 4.0 ``` - 若需要严格四舍五入到最近的整数,可结合$np.floor()$和条件判断实现自定义逻辑[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值