返回

如何以指定精度和无科学计数法打印 NumPy 数组?

python

以指定精度和无科学计数法打印 NumPy 数组

引言

NumPy 数组是处理科学计算和数据分析中大量数据的强大工具。但是,当打印包含浮点数的大型数组时,可能会遇到科学计数法和难以读懂的格式问题。本文将指导你如何克服这些挑战,以指定精度和无科学计数法打印 NumPy 数组。

禁用科学计数法并设置精度

numpy.set_printoptions() 函数让你能够控制 NumPy 数组的打印选项。可以通过设置 suppress 参数为 True 来禁用科学计数法,并使用 precision 参数指定要显示的小数位数。

示例:

import numpy as np

# 禁用科学计数法
np.set_printoptions(suppress=True)

# 设置小数位数为 3
np.set_printoptions(precision=3)

# 打印数组
arr = np.array([1.23456, 2.34567, 3.45678])
print(arr)

输出:

[1.235 2.346 3.457]

使用 np.around()np.array2string()

对于大型数组,禁用科学计数法可能会导致打印输出过长。为了避免这种情况,可以使用 np.around() 函数对数组中的元素进行四舍五入,然后使用 np.array2string() 函数将数组转换为字符串。

示例:

import numpy as np

# 四舍五入数组
arr = np.around(arr, decimals=3)

# 转换为字符串
s = np.array2string(arr)

# 打印字符串
print(s)

输出:

'[1.235 2.346 3.457]'

使用格式化字符串

格式化字符串提供了对打印输出的最大控制。你可以使用此方法以指定精度和无科学计数法打印数组。

示例:

import numpy as np

# 转换为列表
arr_list = list(arr)

# 使用格式化字符串
s = '[{}]'.format(', '.join('{:0.3f}'.format(x) for x in arr_list))

# 打印字符串
print(s)

输出:

'[1.235, 2.346, 3.457]'

结论

本文介绍了三种不同的方法来打印具有指定精度和无科学计数法的 NumPy 数组。根据你的具体需求和数组大小,可以选择最合适的方法。通过使用这些方法,你可以提高 NumPy 数组的打印输出的可读性和易用性。

常见问题解答

  1. 如何仅打印特定列或行?
    可以使用 NumPy 的索引和切片操作来选择数组的特定部分。

  2. 如何将数组保存到文件中?
    可以使用 np.savetxt()np.save() 函数将数组保存到文件中。

  3. 如何以不同格式打印数组?
    可以使用 np.array2string() 函数以各种格式(例如 LaTeX、HTML)打印数组。

  4. 如何以科学计数法打印数组?
    禁用 suppress 参数并启用 float_output 参数。

  5. 如何设置不同的打印阈值?
    使用 threshold 参数来设置一个数字,只有数组中比该数字更大的值才会打印。