array2string
форматирует массив для отображения так же, как если бы вы делали print
:
In [32]: x = np.arange(12).reshape(4,3)
In [33]: x
Out[33]:
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
In [34]: np.array2string(x)
Out[34]: '[[ 0 1 2]\n [ 3 4 5]\n [ 6 7 8]\n [ 9 10 11]]'
Обратите внимание, что строка для печати списка также содержит скобки (и запятые):
In [35]: str(x.tolist())
Out[35]: '[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]]'
Другая сложность с array2string
заключается в том, что для длинных массивов используется аббревиатура с многоточием (хотя это можно изменить с помощью параметра).
np.savetxt
- относительно простая запись2d массива в файл и может быть эмулирован с явным форматированием.
In [37]: np.savetxt('test.txt', x, fmt='%d', delimiter=',')
In [38]: cat test.txt # ipython system command to display a file
0,1,2
3,4,5
6,7,8
9,10,11
In [39]: for row in x:
...: print('%d,%d,%d'%tuple(row))
...:
0,1,2
3,4,5
6,7,8
9,10,11
или в виде одной строки
In [42]: astr = '\n'.join(['%3d %3d %3d'%tuple(row) for row in x])
In [43]: astr
Out[43]: ' 0 1 2\n 3 4 5\n 6 7 8\n 9 10 11'