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


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

方法 1:使用 round() 函数

round() 函数的语法

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

这里,arr 是要舍入的输入数组,decimal 是数组元素要舍入到的小数位数。默认情况下,decimal 值为 0。out 是舍入原始数组元素后创建的输出数组。

示例 1:舍入单个数组元素

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

import numpy as np

# Create an array
arr = np.array([3.14159])

# Round the array element to 2 decimal places
rounded_arr = np.round(arr, decimals=2)

# Print the rounded array element
print(rounded_arr)

输出

[3.14]

示例:舍入多个数组元素

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

import numpy as np

# Create an array
arr = np.array([1.234, 2.345, 3.456, 4.567])

# Round the array elements to 1 decimal place
rounded_arr = np.round(arr, decimals=1)

# Print the rounded array elements
print(rounded_arr)

输出

[1.2 2.3 3.5 4.6]

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

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

import numpy as np

# Create an array
arr = np.array([1.234, 2.345, 3.456, 4.567])

# Define the precision
precision = 0.001

# Calculate the multiplier needed to achieve the desired precision
multiplier = 1 / precision

# Round the array elements to the nearest integer
rounded_arr = np.round(arr * multiplier) / multiplier

# Print the rounded array elements
print(rounded_arr)

输出

1.234 2.345 3.456 4.567]

示例 4:舍入到指定的精度

在下面的示例中,我们首先将所需的精度定义为变量 precision。然后,我们通过将 1 除以精度来计算实现所需精度的乘数。在舍入之前,我们将数组元素乘以该乘数,然后将其除以乘数,以获得所需精度下的舍入值。

import numpy as np

# Create an array
arr = np.array([1.234, 2.345, 3.456, 4.567])

# Define the precision
precision = 0.001

# Calculate the multiplier needed to achieve the desired precision
multiplier = 1 / precision

# Round the array elements to the nearest integer
rounded_arr = np.round(arr * multiplier) / multiplier

# Print the rounded array elements
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

# Create an array
arr = np.array([1.234, 2.345, 3.456, 4.567])

# Round down the array elements to 1 decimal place
rounded_arr = np.floor(arr * 10) / 10

# Print the rounded array elements
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 的变量中。最后,使用 print 函数将舍入后的数组打印到控制台。

import numpy as np

# Create an array
arr = np.array([1.234, 2.345, 3.456, 4.567])

# Round up the array elements to 1 decimal place
rounded_arr = np.ceil(arr * 10) / 10

# Print the rounded array elements
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

# Create an array
arr = np.array([1.234, 2.345, 3.456, 4.567])

# Truncate the array elements to integers
truncated_arr = np.trunc(arr)

# Print the truncated array elements
print(truncated_arr)

输出

[1. 2. 3. 4.]

结论

在本文中,我们讨论了如何使用 numpy 将数组元素舍入到给定的小数位数。NumPy 库提供了一个 round() 函数来对数组元素执行舍入操作。我们可以使用 round() 方法将数组元素舍入到任何所需的小数位数。我们还可以使用 numpy.floor()、numpy.ceil() 和 numpy.trunc() 来舍入 numpy 数组元素。

更新于: 2023-07-11

509 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.