NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍一下NumPy中array2string方法的使用。

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 :array_like

输入array

max_line_width :int, 可选

如果文本长于max_line_width,则插入换行符。

默认为numpy.get_printoptions()['linewidth']

precision :intNone, 可选

浮点精度。默认为numpy.get_printoptions()['precision']

suppress_smallbool, 可选

将“非常接近”的数字表示为零;默认值为False

非常接近由精度定义:如果精度为8

例如(绝对值)小于5e-9的数字表示为零。

默认为numpy.get_printoptions()['suppress']

separatorstr, 可选

插入元素之间。

fprefix str, 可选

suffixstr, 可选

前缀和后缀字符串的长度分别用于对齐和包装输出。

数组通常输出为:

prefix + array2string(a) + suffix

输出用前缀字符串的长度左填充,

并在列max_line_width-len(suffix)处强制换行。

应该注意的是,前缀和后缀字符串的内容不包含在输出中。

style _NoValue, 可选

没有效果,请不要使用。 

从1.14.0版开始不推荐使用。

formatter :可调用的dict, 可选

如果不是None,则键应指示相应的格式化功能适用的类型。

可调用对象应返回一个字符串。

未指定的类型(通过其对应的键)由默认格式化程序处理。

可以设置格式器的单个类型为:

  • ‘bool’
  • ‘int’
  • ‘timedelta’ : numpy.timedelta64
  • ‘datetime’ : numpy.datetime64
  • ‘float’
  • ‘longfloat’ : 128-bit floats
  • ‘complexfloat’
  • ‘longcomplexfloat’ : 由两个128-bit floats组成
  • ‘void’ : 类型 numpy.void
  • ‘numpystr’ : 类型numpy.string_和numpy.unicode_
  • ‘str’ : 所有其他字符串

其他键,可以用来设置一组类型一次是:

  • ‘all’ : 设置所有类型
  • ‘int_kind’ : 设置‘int’
  • ‘float_kind’ : 设置 'float'和'longfloat'
  • ‘complex_kind’ : 设置 'complexfloat'和'longcomplexfloat’
  • ‘str_kind’ : 设置 'str'和'numpystr’

threshold int, 可选

触发汇总而不是完整表示的数组元素总数。

默认为numpy.get_printoptions()['threshold']

edgeitems :int, 可选

每个维度的开始和结束处摘要中的数组项目数。

默认为numpy.get_printoptions()['edgeitems']

sign :字符串,可以是 '-' , '+',或'',可选

控制浮点类型符号的打印。如果是“+”

请始终打印正值的符号。如果为 ''

则始终在正值的正负号位置打印一个空格(空白字符)。

如果为“-”,请省略正值的符号字符。

默认为numpy.get_printoptions()['sign']

floatmode :str, 可选

控制浮点类型的precision选项的解释。 

默认为numpy.get_printoptions()['floatmode'] 。 

可以采用以下值:

       1) ‘fixed’:始终打印精确的小数位数,

       即使这将打印出比唯一指定该值所需的位数多或少的位数。

       2) 'unique':打印唯一表示每个值所需的最少的小数位数。 

       不同的元素可能具有不同数量的数字。 

   precision选项的值将被忽略。

       3) 'maxprec':打印精度最高的小数位数,

       但是如果一个元素可以用更少的位数唯一表示,

       则仅打印那么多位数。

       4) 'maxprec_equal':打印最精确的小数位数,

       但是如果数组中的每个元素,

       都可以用相同数量的更少的数字唯一地表示,

       那么对所有元素都使用相同数量的数字。

legacy :string 或 False, 可选

如果设置为字符串“1.13”,则启用1.13旧版打印模式。 

通过在浮点数的符号位置包含一个空格以及0d数组的不同行为,

这近似于numpy 1.13打印输出。 如果设置为False ,

则禁用旧模式。

 无法识别的字符串将被警告,并带有向前兼容性的警告。

1.14.0版中的新功能。


返回值:

array_str : str

数组的字符串表示形式。

Raises:

TypeError

如果formatter中的callable不返回字符串。

Notes

如果为特定类型指定了格式化程序,则该类型的precision关键字将被忽略。

这是一个非常灵活的功能; array_reprarray_str在内部使用array2string因此具有相同名称的关键字在所有三个函数中应相同地工作。

例子

>>> x = np.array([1e-16,1,2,3])
>>> np.array2string(x, precision=2, separator=',',
...                       suppress_small=True)
'[0.,1.,2.,3.]'
>>> x  = np.arange(3.)
>>> np.array2string(x, formatter={'float_kind':lambda x: "%.2f" % x})
'[0.00 1.00 2.00]'

>>> x  = np.arange(3)
>>> np.array2string(x, formatter={'int':lambda x: hex(x)})
'[0x0 0x1 0x2]'

推荐文档

相关文档

大家感兴趣的内容

随机列表