Skip to main content
`Ctrl`+`K`

# numpy.array2string

numpy.array2string(a, max_line_width=None, precision=None, suppress_small=None, separator=' ', prefix='', style=<no value>, formatter=None, threshold=None, edgeitems=None, sign=None, floatmode=None, suffix='', *, legacy=None)

  Return a string representation of an array.

  Parameters:
    a ndarray

      Input array.

    max_line_width int, optional

      Inserts newlines if text is longer than max_line_width. Defaults to `numpy.get_printoptions()['linewidth']`.

    precision int or None, optional

      Floating point precision. Defaults to `numpy.get_printoptions()['precision']`.

    suppress_small bool, optional

      Represent numbers “very close” to zero as zero; default is False. Very close is defined by precision: if the precision is 8, e.g., numbers smaller (in absolute value) than 5e-9 are represented as zero. Defaults to `numpy.get_printoptions()['suppress']`.

    separator str, optional

      Inserted between elements.

    prefix str, optional
    suffix str, optional

      The length of the prefix and suffix strings are used to respectively align and wrap the output. An array is typically printed as:

          prefix + array2string(a) + suffix

      The output is left-padded by the length of the prefix string, and wrapping is forced at the column `max_line_width - len(suffix)`. It should be noted that the content of prefix and suffix strings are not included in the output.

    style_NoValue, optional

      Has no effect, do not use.

      Deprecated since version 1.14.0.

    formatter dict of callables, optional

      If not None, the keys should indicate the type(s) that the respective formatting function applies to. Callables should return a string. Types that are not specified (by their corresponding keys) are handled by the default formatters. Individual types for which a formatter can be set are:

      - ‘bool’

      - ‘int’

      - ‘timedelta’ : a `numpy.timedelta64`

      - ‘datetime’ : a `numpy.datetime64`

      - ‘float’

      - ‘longfloat’ : 128-bit floats

      - ‘complexfloat’

      - ‘longcomplexfloat’ : composed of two 128-bit floats

      - ‘void’ : type `numpy.void`

      - ‘numpystr’ : types `numpy.bytes_` and `numpy.str_`

      Other keys that can be used to set a group of types at once are:

      - ‘all’ : sets all types

      - ‘int_kind’ : sets ‘int’

      - ‘float_kind’ : sets ‘float’ and ‘longfloat’

      - ‘complex_kind’ : sets ‘complexfloat’ and ‘longcomplexfloat’

      - ‘str_kind’ : sets ‘numpystr’

    threshold int, optional

      Total number of array elements which trigger summarization rather than full repr. Defaults to `numpy.get_printoptions()['threshold']`.

    edgeitems int, optional

      Number of array items in summary at beginning and end of each dimension. Defaults to `numpy.get_printoptions()['edgeitems']`.

    sign string, either ‘-’, ‘+’, or ‘ ‘, optional

      Controls printing of the sign of floating-point types. If ‘+’, always print the sign of positive values. If ‘ ‘, always prints a space (whitespace character) in the sign position of positive values. If ‘-’, omit the sign character of positive values. Defaults to `numpy.get_printoptions()['sign']`.

      Changed in version 2.0: The sign parameter can now be an integer type, previously types were floating-point types.

    floatmode str, optional

      Controls the interpretation of the precision option for floating-point types. Defaults to `numpy.get_printoptions()['floatmode']`. Can take the following values:

      - ‘fixed’: Always print exactly precision fractional digits, even if this would print more or fewer digits than necessary to specify the value uniquely.

      - ‘unique’: Print the minimum number of fractional digits necessary to represent each value uniquely. Different elements may have a different number of digits. The value of the precision option is ignored.

      - ‘maxprec’: Print at most precision fractional digits, but if an element can be uniquely represented with fewer digits only print it with that many.

      - ‘maxprec_equal’: Print at most precision fractional digits, but if every element in the array can be uniquely represented with an equal number of fewer digits, use that many digits for all elements.

    legacy string or False, optional

      If set to the string `'1.13'` enables 1.13 legacy printing mode. This approximates numpy 1.13 print output by including a space in the sign position of floats and different behavior for 0d arrays. If set to False, disables legacy mode. Unrecognized strings will be ignored with a warning for forward compatibility.

  Returns:
    array_str str

      String representation of the array.

  Raises:
    TypeError

      if a callable in formatter does not return a string.

  See also

  `array_str`, `array_repr`, `set_printoptions`, `get_printoptions`

  Notes

  If a formatter is specified for a certain type, the precision keyword is ignored for that type.

  This is a very flexible function; `array_repr` and `array_str` are using `array2string` internally so keywords with the same name should work identically in all three functions.

  Examples

      >>> import numpy as np
      >>> 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]'