Печать двух матриц друг за другом
Как командой print() вывести две матрицы друг за другом.
Хочу:
[[5 4 4] [[11]
[4 5 4] [8]
[4 4 5]] [7]]
Выводится:
[[5 4 4]
[4 5 4]
[4 4 5]] [[11]
[ 8]
[ 7]]
Источник: Stack Overflow на русском
Как командой print() вывести две матрицы друг за другом.
Хочу:
[[5 4 4] [[11]
[4 5 4] [8]
[4 4 5]] [7]]
Выводится:
[[5 4 4]
[4 5 4]
[4 4 5]] [[11]
[ 8]
[ 7]]
Один из вариантов. Преобразуем массивы в строковое представление и выводим построчно.
def side_print(*args):
lst = list(args)
max_widths = []
for i, a in enumerate(lst):
lst[i] = str(a).split('\n')
max_widths.append(len(max(lst[i], key=len)))
max_lines = len(max(lst, key=len))
for i in range(max_lines):
for j, t in enumerate(lst):
if len(t) <= i:
text = ' ' * max_widths[j]
else:
text = t[i]
print(text, end='\t')
print()
a = np.array([[5, 4, 4],
[4, 5, 4],
[4, 4, 5]])
b = np.arange(100).reshape(10,-1)
c = np.array([[11],
[8],
[7],
[5],
[3]])
side_print(a, b, c)
[[5 4 4] [[ 0 1 2 3 4 5 6 7 8 9] [[11]
[4 5 4] [10 11 12 13 14 15 16 17 18 19] [ 8]
[4 4 5]] [20 21 22 23 24 25 26 27 28 29] [ 7]
[30 31 32 33 34 35 36 37 38 39] [ 5]
[40 41 42 43 44 45 46 47 48 49] [ 3]]
[50 51 52 53 54 55 56 57 58 59]
[60 61 62 63 64 65 66 67 68 69]
[70 71 72 73 74 75 76 77 78 79]
[80 81 82 83 84 85 86 87 88 89]
[90 91 92 93 94 95 96 97 98 99]]