如何使用 NumPy 将数组元素四舍五入到指定的小数位数?

numpyserver side programmingprogramming

Numpy 库中的 round() 函数用于将数组元素四舍五入到指定的小数位数。Numpy 是一个 Python 库,用于执行数学运算、操作和创建数组等。在本文中,我们将使用 round() 函数将数组元素四舍五入到指定的小数位数。

方法 1:使用 round() 函数

round() 函数的语法

numpy.round(arr,decimals=0, out=None)

其中,arr 是需要四舍五入的输入数组,decimal 是数组元素需要四舍五入的小数位数。默认情况下,小数部分为 0。Out 是对原始数组元素进行四舍五入后生成的输出数组。

示例 1:对单个数组元素进行四舍五入

在下面的示例中,我们创建了一个包含单个元素的数组 arr,然后使用 round() 函数将数组元素四舍五入到小数点后 2 位。然后打印四舍五入后的数组元素。

import numpy as np

# 创建数组
arr = np.array([3.14159])

# 将数组元素四舍五入到小数点后 2 位
rounded_arr = np.round(arr, decimals=2)

# 打印四舍五入后的数组元素
print(rounded_arr)

输出

[3.14]

示例:对多个数组元素进行四舍五入

在下面的示例中,我们创建了一个包含多个元素的数组 arr,然后使用 round() 函数将数组元素四舍五入到小数点后 1 位。然后打印四舍五入后的数组元素。

import numpy as np

# 创建数组
arr = np.array([1.234, 2.345, 3.456, 4.567])

# 将数组元素四舍五入到小数点后 1 位
rounded_arr = np.round(arr, decimals=1)

# 打印四舍五入后的数组元素
print(rounded_arr)

输出

[1.2 2.3 3.5 4.6]

示例 3:四舍五入到最接近的整数

在下面的示例中,我们创建了一个包含多个元素的数组 arr,然后使用 round() 函数将数组元素四舍五入到最接近的整数。然后打印四舍五入后的数组元素。

import numpy as np

# 创建数组
arr = np.array([1.234, 2.345, 3.456, 4.567])

# 定义精度
precision = 0.001

# 计算达到所需精度所需的乘数
multiplier = 1 / precision

# 将数组元素四舍五入为最接近的整数
rounded_arr = np.round(arr * multiplier) / multiplier

# 打印四舍五入后的数组元素
print(rounded_arr)

输出

1.234 2.345 3.456 4.567]

示例 4:舍入到指定精度

在下面的示例中,我们首先将所需精度定义为变量精度。然后,我们通过将 1 除以该精度来计算达到所需精度所需的乘数。我们将数组元素乘以该乘数,然后进行舍入,最后再除以该乘数,即可得到达到所需精度的舍入值。

import numpy as np

# 创建数组
arr = np.array([1.234, 2.345, 3.456, 4.567])

# 定义精度
precision = 0.001

# 计算达到所需精度所需的乘数
multiplier = 1 / precision

# 将数组元素舍入为最接近的整数
rounded_arr = np.round(arr * multiplier) / multiplier

# 打印舍入后的数组元素
print(rounded_arr)

输出

[1.234 2.345 3.456 4.567]

方法 2:使用 numpy.floor() 方法

numpy.floor 方法返回不大于输入元素的最大整数。当应用于数组时,它会将每个元素向下舍入到最接近的整数或小数位,并趋近于负无穷。

语法

numpy.floor(arr, decimals)

其中,arr 是输入数组,decimals (可选)是要舍入到的小数位数。默认值为 0。

示例

在下面的示例中,代码创建了一个包含浮点值的 NumPy 数组 arr。然后,它使用 numpy.floor 方法将数组中的每个元素向下舍入到最接近的 0.1(即小数点后 1 位),并趋近于负无穷。舍入后的数组存储在名为 rounded_arr 的变量中。最后,使用 print 函数将四舍五入后的数组打印到控制台。

import numpy as np

# 创建数组
arr = np.array([1.234, 2.345, 3.456, 4.567])

# 将数组元素向下舍入到小数点后 1 位
rounded_arr = np.floor(arr * 10) / 10

# 打印四舍五入后的数组元素
print(rounded_arr)

输出

[1.2 2.3 3.4 4.5]

方法 3:使用 numpy.ceil()

numpy.ceil 方法返回不小于输入元素。当应用于数组时,它会将每个元素向上舍入到最接近的整数或小数位,并趋向正无穷。

语法

numpy.ceil(arr, decimals)

此处,arr 是输入数组,decimals(可选)是要舍入到的小数位数。默认值为 0。

示例

在下面的示例中,代码创建一个包含浮点值的 NumPy 数组 arr。然后,它使用 numpy.ceil 方法将数组中的每个元素向上舍入到最接近的 0.1(即 1 位小数),并趋向正无穷。舍入后的数组存储在名为 rounded_arr 的变量中。最后,使用打印函数将四舍五入后的数组打印到控制台。

import numpy as np

# 创建数组
arr = np.array([1.234, 2.345, 3.456, 4.567])

# 将数组元素向上舍入到小数点后 1 位
rounded_arr = np.ceil(arr * 10) / 10

# 打印舍入后的数组元素
print(rounded_arr)

输出

[1.3 2.4 3.5 4.6]

方法 4:使用 numpy.trunc() 方法

numpy.trunc 方法返回输入元素的整数部分。当应用于数组时,它会通过舍去每个元素的小数部分来向零舍入。

语法

numpy.trunc(arr)

此处,arr 是包含需要舍入的小数元素的输入数组。

示例

在下面的示例中,我们创建一个包含浮点值的 NumPy 数组 arr。然后,它使用 numpy.trunc 方法通过舍去值的小数部分,将数组中的每个元素向下舍入为最接近的整数。截断后的数组存储在名为 truncated_arr 的变量中。最后,使用 print 函数将截断后的数组打印到控制台。

import numpy as np

# 创建数组
arr = np.array([1.234, 2.345, 3.456, 4.567])

# 将数组元素截断为整数
truncated_arr = np.trunc(arr)

# 打印截断后的数组元素
print(truncated_arr)

输出

[1. 2. 3. 4.]

总结

本文讨论了如何使用 numpy 将数组元素四舍五入到指定的小数位数。 Numpy 库提供了一个 round() 函数来对数组元素执行舍入操作。我们可以使用该 round() 方法将数组元素舍入到任意所需的小数位数。我们也可以使用 numpy.floor()、numpy.ceil() 和 numpy.trunc() 对 Numpy 数组元素进行舍入。


相关文章