numpy.array2string
numpy.array2string(a, max_line_width=None, precision=None, suppress_small=None, separator=' ', prefix='', style<novalue>, formatter=None, threshold=None, edgeitems=None, sign=None, floatmode=None, suffix='', *, legacy=None) [source]
参数: | object : 输入 max_line_width : 如果文本长于 默认为 precision : 浮点精度。默认为 suppress_small: 将“非常接近”的数字表示为零;默认值为 非常接近由精度定义:如果精度为 例如(绝对值)小于 默认为 separator: 插入元素之间。 fprefix : suffix: 前缀和后缀字符串的长度分别用于对齐和包装输出。 数组通常输出为:
输出用前缀字符串的长度左填充, 并在列 应该注意的是,前缀和后缀字符串的内容不包含在输出中。 style : 没有效果,请不要使用。 从1.14.0版开始不推荐使用。 formatter :可调用的 如果不是 可调用对象应返回一个字符串。 未指定的类型(通过其对应的键)由默认格式化程序处理。 可以设置格式器的单个类型为:
其他键,可以用来设置一组类型一次是:
threshold : 触发汇总而不是完整表示的数组元素总数。 默认为 edgeitems : 每个维度的开始和结束处摘要中的数组项目数。 默认为 sign :字符串,可以是 控制浮点类型符号的打印。如果是 请始终打印正值的符号。如果为 则始终在正值的正负号位置打印一个空格(空白字符)。 如果为 默认为 floatmode : 控制浮点类型的 默认为 可以采用以下值: 1) ‘fixed’:始终打印精确的小数位数, 即使这将打印出比唯一指定该值所需的位数多或少的位数。2) 'unique':打印唯一表示每个值所需的最少的小数位数。 不同的元素可能具有不同数量的数字。
3) 'maxprec':打印精度最高的小数位数, 但是如果一个元素可以用更少的位数唯一表示, 则仅打印那么多位数。 4) 'maxprec_equal':打印最精确的小数位数, 但是如果数组中的每个元素, 都可以用相同数量的更少的数字唯一地表示, 那么对所有元素都使用相同数量的数字。 legacy : 如果设置为字符串“1.13”,则启用1.13旧版打印模式。 通过在浮点数的符号位置包含一个空格以及 这近似于numpy 1.13打印输出。 如果设置为 则禁用旧模式。 无法识别的字符串将被警告,并带有向前兼容性的警告。 1.14.0版中的新功能。 |
返回值: | array_str : 数组的字符串表示形式。 |
Raises: | TypeError 如果formatter中的callable不返回字符串。 |
Notes
如果为特定类型指定了格式化程序,则该类型的precision
关键字将被忽略。
这是一个非常灵活的功能; array_repr和array_str在内部使用array2string因此具有相同名称的关键字在所有三个函数中应相同地工作。
例子
1)基本使用
import numpy as np
# 创建一个 NumPy 数组
a = np.array([1.12345, 2.12345, 3.12345, 4.12345])
# 将数组转换为字符串,保留默认设置
string_representation = np.array2string(a)
print(string_representation)
2)设置小数精度
import numpy as np
# 创建一个 NumPy 数组
a = np.array([1.12345, 2.12345, 3.12345, 4.12345])
# 将数组转换为字符串,设置小数精度为2
string_representation = np.array2string(a, precision=2)
print(string_representation)
3)使用自定义分隔符
import numpy as np
# 创建一个 NumPy 数组
a = np.array([1.12345, 2.12345, 3.12345, 4.12345])
# 将数组转换为字符串,使用逗号分隔
string_representation = np.array2string(a, separator=', ')
print(string_representation)
4)抑制小数点后的微小数值
import numpy as np
# 创建一个 NumPy 数组
a = np.array([1e-10, 2e-10, 3e-10, 4e-10])
# 将数组转换为字符串,抑制小数点后的微小数值
string_representation = np.array2string(a, suppress_small=True)
print(string_representation)
5)自定义格式化函数
import numpy as np
# 创建一个 NumPy 数组import numpy as np
# 创建一个 NumPy 数组
a = np.array([1.12345, 2.12345, 3.12345, 4.12345])
# 定义自定义格式化函数
formatter = {
'float_kind': lambda x: f"{x:0.1f}"
}
# 将数组转换为字符串,使用自定义格式化函数
string_representation = np.array2string(a, formatter=formatter)
print(string_representation)
6)使用示例
import numpy as np
# 示例 1:指定小数精度、分隔符并抑制小数点后的微小数值
x1 = np.array([1e-16, 1, 2, 3])
string_representation1 = np.array2string(x1, precision=2, separator=',', suppress_small=True)
print("示例 1 输出:", string_representation1)
# 示例 2:使用自定义格式化函数将浮点数格式化为两位小数
x2 = np.arange(3.)
string_representation2 = np.array2string(x2, formatter={'float_kind': lambda x: "%.2f" % x})
print("示例 2 输出:", string_representation2)
# 示例 3:使用自定义格式化函数将整数格式化为十六进制
x3 = np.arange(3)
string_representation3 = np.array2string(x3, formatter={'int': lambda x: hex(x)})
print("示例 3 输出:", string_representation3)