numpy.set_string_function
numpy.set_string_function(f, repr=True)
Функция set_string_function() позволяет задать собственную функцию для вывода массивов на экран.
-
- f - функция Python или None.
-
Функция, которая будет использована для репрезентативного представления массива (метод
__repr__
, который получается без функцииprint()
). Данная функция должна принимать только один аргумент - массив и возвращать только одну строку с его представлением. Если параметр установлен в None, то значение сбрасывается на установленную по умолчанию функцию NumPy. - repr - True или False, (необязательный параметр).
-
Если True (по умолчанию), то функция будет установлена для метода
__repr__
(вывод без функцииprint()
). Если False, то функция будет установлена для метода__str__
, который позволяет задать более "красиво-читаемое" строковое представление массива (функцияprint()
).
Примеры
>>> import numpy as np
>>>
>>> def my_print(a):
... return 'Пора бы и отдохнуть друг'
...
>>> np.set_string_function(my_print)
>>>
>>> a = np.arange(7)
>>> a
Пора бы и отдохнуть друг
>>>
>>> print(a)
[0 1 2 3 4 5 6]
>>>
>>>
>>> np.set_string_function(my_print, repr = False)
>>>
>>> a
Пора бы и отдохнуть друг
>>>
>>> print(a)
Пора бы и отдохнуть друг
>>>
>>>
>>> np.set_string_function(None) # сбрасывает на функцию NumPy по умолчанию
>>>
>>> a
array([0, 1, 2, 3, 4, 5, 6])
>>>
>>> print(a)
Пора бы и отдохнуть друг
Или более реалистичный пример:
>>> def my_print(a):
... s = ''
... for i in a.flat:
... s += str(i) + ' | '
... return s
...
>>> np.set_string_function(my_print)
>>>
>>> a = np.arange(6).reshape(2, 3)
>>> a
0 | 1 | 2 | 3 | 4 | 5 |
>>>
>>> # Но все равно :)
... print(a)
Пора бы и отдохнуть друг