
Работа с многомерными массивами в Python чаще всего связана с использованием библиотеки NumPy. Такие массивы представляют собой объекты класса ndarray, позволяющие хранить и обрабатывать данные в виде матриц любой размерности. Для корректного отображения содержимого массивов важно учитывать как их форму, так и вложенность.
array = [
[12, 5, 123],
[8, 90, 7],
[456, 3, 1]
]
# Определение ширины для каждого столбца
widths = [max(len(str(row[i])) for row in array) for i in range(len(array[0]))]
# Печать с выравниванием по ширине
for row in array:
print(" ".join(str(item).rjust(widths[i]) for i, item in enumerate(row)))
В данном примере `rjust` добавляет пробелы слева от значения до нужной ширины. Если требуется выравнивание по левому краю – используйте `ljust`, для центрирования – `center`.
Если массив содержит строки или смешанные типы, рекомендуется привести все значения к строковому типу заранее:
array = [
["ID", "Имя", "Возраст"],
[1, "Анна", 29],
[25, "Борис", 34],
[300, "Виктор", 41]
]
widths = [max(len(str(row[i])) for row in array) for i in range(len(array[0]))]
for row in array:
print(" | ".join(str(item).ljust(widths[i]) for i, item in enumerate(row)))
Разделитель `» | «` добавлен для визуального отделения столбцов. Вместо него можно использовать любой другой символ или пробелы. Для повышения читаемости полезно добавлять строку-разделитель между заголовком и данными:
print("-+-".join("-" * w for w in widths))
print подходит для быстрого просмотра. array2string – для настройки формата. Первый зависит от глобальных настроек, второй позволяет задать их локально при каждом вызове.

pd.set_option("display.max_columns", None)
pd.set_option("display.width", None)
После изменения настроек массивы и таблицы будут отображаться полностью, вне зависимости от их размеров. Это удобно при отладке, анализе данных и в интерактивных сессиях.
Как задать точность отображения чисел в массиве NumPy

- Параметр
precisionотвечает за количество знаков после десятичной точки. - Параметр
suppressотключает экспоненциальную форму записи для малых значений, если установлен вTrue.
import numpy as np
np.set_printoptions(precision=3, suppress=True)
a = np.array([[0.123456, 0.0000123], [1.987654, 123456.789]])
print(a)
Этот код выведет значения с тремя знаками после запятой, при этом малые числа будут показаны в обычной форме, а не в экспоненциальной.
Изменения, внесённые set_printoptions, действуют глобально для всей сессии. Чтобы временно изменить формат, используйте np.printoptions в контексте with:
with np.printoptions(precision=2, suppress=True):
print(a)
После выхода из блока настройки автоматически возвращаются к предыдущим.
Как вывести массив с подписями строк и столбцов

Пример:

import pandas as pd
import numpy as np
data = np.array([[12, 7, 5],
[9, 3, 8],
[4, 6, 2]])
row_labels = ['Строка 1', 'Строка 2', 'Строка 3']
col_labels = ['Столбец A', 'Столбец B', 'Столбец C']
df = pd.DataFrame(data, index=row_labels, columns=col_labels)
print(df)
Результат:
Столбец A Столбец B Столбец C
Строка 1 12 7 5
Строка 2 9 3 8
Строка 3 4 6 2
Если использование pandas нежелательно, можно воспользоваться обычным циклом с форматированием:
7}" for label in col_labels))
for row_label, row in zip(row_labels, data):
formatted_row = " ".join(f"{val:7}" for val in row)
print(f"{row_label:<8}{formatted_row}")
Такой способ позволяет точно контролировать отступы и выравнивание, без сторонних библиотек.
Для начала необходимо преобразовать массив в строку с нужным форматированием. Например, можно использовать метод array2string() из numpy для представления массива в виде строки с отступами, разделителями и нужными точностями.
import numpy as np array = np.array([[1.12345, 2.23456, 3.34567], [4.45678, 5.56789, 6.67890]]) formatted_array = np.array2string(array, precision=2, separator=', ')
Этот код создаст строку, в которой элементы массива будут разделены запятой, а числа округлены до двух знаков после запятой.
with open('output.txt', 'w') as file:
file.write(formatted_array)
В случае работы с массивами больших размеров можно использовать циклы для более детальной настройки форматирования, например, распечатывать каждый ряд массива в новой строке, добавляя дополнительные отступы для улучшения читаемости:
with open('output.txt', 'w') as file:
for row in array:
file.write(' '.join(f'{x:.2f}' for x in row) + '\n')
В этом примере каждая строка массива будет записана в файл на новой строке, а элементы будут отформатированы с двумя знаками после запятой.
