Как вывести многомерный массив python

Как вывести многомерный массив python

Работа с многомерными массивами в 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 – для настройки формата. Первый зависит от глобальных настроек, второй позволяет задать их локально при каждом вызове.

undefinedprint</strong> подходит для быстрого просмотра. <strong>array2string</strong> – для настройки формата. Первый зависит от глобальных настроек, второй позволяет задать их локально при каждом вызове.»></p>
<p><code>np.set_printoptions(threshold=np.inf, linewidth=np.inf)</code></p>
<p><img decoding=
pd.set_option("display.max_columns", None)
pd.set_option("display.width", None)

После изменения настроек массивы и таблицы будут отображаться полностью, вне зависимости от их размеров. Это удобно при отладке, анализе данных и в интерактивных сессиях.

Как задать точность отображения чисел в массиве NumPy

Как задать точность отображения чисел в массиве 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 нежелательно, можно воспользоваться обычным циклом с форматированием:

Если использование undefinedpandas</code> нежелательно, можно воспользоваться обычным циклом с форматированием:»></p>
<pre><code>data = [[12, 7, 5],
[9, 3, 8],
[4, 6, 2]]
row_labels = ['Строка 1', 'Строка 2', 'Строка 3']
col_labels = ['A', 'B', 'C']
print(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')

В этом примере каждая строка массива будет записана в файл на новой строке, а элементы будут отформатированы с двумя знаками после запятой.

Вопрос-ответ:

Ссылка на основную публикацию