Previous topic


Next topic



numpy.set_string_function(f, repr=True)[source]

Set a Python function to be used when pretty printing arrays.

ffunction or None

Function to be used to pretty print arrays. The function should expect a single array argument and return a string of the representation of the array. If None, the function is reset to the default NumPy function to print arrays.

reprbool, optional

If True (default), the function for pretty printing (__repr__) is set, if False the function that returns the default string representation (__str__) is set.


>>> def pprint(arr):
...     return 'HA! - What are you going to do now?'
>>> np.set_string_function(pprint)
>>> a = np.arange(10)
>>> a
HA! - What are you going to do now?
>>> _ = a
>>> # [0 1 2 3 4 5 6 7 8 9]

We can reset the function to the default:

>>> np.set_string_function(None)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

repr affects either pretty printing or normal string representation. Note that __repr__ is still affected by setting __str__ because the width of each array element in the returned string becomes equal to the length of the result of __str__().

>>> x = np.arange(4)
>>> np.set_string_function(lambda x:'random', repr=False)
>>> x.__str__()
>>> x.__repr__()
'array([0, 1, 2, 3])'