python中np.round()的用法
时间: 2024-04-30 09:20:50 浏览: 347
`np.round()` 是 numpy 库中的一个函数,用于四舍五入到指定精度。
函数的语法如下:
```python
numpy.round(arr, decimals=0, out=None)
```
其中,参数说明如下:
- `arr`:要四舍五入的数组。
- `decimals`:保留几位小数,默认值为 0。
- `out`:输出结果的数组,如果不提供,则创建一个新数组来存储结果。
下面是一些使用 `np.round()` 函数的示例:
```python
import numpy as np
# 保留整数位数
arr1 = np.array([1.23, 2.37, 3.54, 4.92])
print(np.round(arr1)) # [1. 2. 4. 5.]
# 保留一位小数
arr2 = np.array([1.234, 2.376, 3.543, 4.918])
print(np.round(arr2, decimals=1)) # [1.2 2.4 3.5 4.9]
# 保留两位小数
arr3 = np.array([1.234, 2.376, 3.543, 4.918])
print(np.round(arr3, decimals=2)) # [1.23 2.38 3.54 4.92]
```
除了 `np.round()` 函数外,还有一些其他的四舍五入函数,例如 `np.ceil()` 和 `np.floor()`。`np.ceil()` 函数用于向上取整,`np.floor()` 函数用于向下取整。
相关问题
优化这段代码import numpy as np fp=np.genfromtxt(C:/Exam/2274135219/Python编程题/2/成绩单数字.csvdelimiter=’,’, encoding='urf-8’) a=np.round(np.mean(fp,axis=1),decimals=1) b=np.round(np.median(fp,axis=1),decimals=1) c=np.round(np.std(fp,axis=1),decimals=1) for i in range(len(a)): print(’{:.1f},{:.1f},{:.1f}'.format(a[i],b[i],c[1]))
可以尝试以下优化:
1. 将文件路径改为相对路径,避免因为文件路径错误导致的异常。
2. 使用 with open() as f 语句来打开文件,避免忘记关闭文件导致资源泄漏。
3. 将代码块封装成函数,增加代码可读性和复用性。
4. 将循环中的字符串格式化改为列表推导式。
5. 将 print() 函数改为 join() 方法,减少 IO 操作。
6. 可以使用 numpy.around() 方法代替 np.round(),简化代码。
改进后的代码如下所示:
```python
import numpy as np
def process_data(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
fp = np.genfromtxt(f, delimiter=',')
a = np.around(np.mean(fp, axis=1), decimals=1)
b = np.around(np.median(fp, axis=1), decimals=1)
c = np.around(np.std(fp, axis=1), decimals=1)
result = ['{:.1f},{:.1f},{:.1f}'.format(a[i], b[i], c[i]) for i in range(len(a))]
return result
file_path = './成绩单数字.csv'
result = process_data(file_path)
print('\n'.join(result))
```
format(np.round(x,2),np.round(x,4))
这段代码中的format函数是用来格式化输出的,其中np.round(x,2)表示将x保留两位小数,np.round(x,4)表示将x保留四位小数。具体用法可以参考下面的例子:
```python
import numpy as np
x = 3.1415926
print("保留两位小数:", format(np.round(x,2)))
print("保留四位小数:", format(np.round(x,4)))
```
输出结果为:
```
保留两位小数: 3.14
保留四位小数: 3.1416
```
阅读全文
相关推荐
















