NumPy является одной из самых популярных библиотек в Python. Она поддерживает научные данные, машинное обучение и численный анализ. Многие разработчики используют массивы NumPy (ndarray) для быстрого анализа больших наборов данных.
В нашем предыдущем блоге мы объяснили, как конвертировать файлы Excel в массивы NumPy. Этот рабочий процесс полезен, когда вам нужно импортировать внешние данные в Python для анализа. Но что делать, если вы хотите сделать наоборот? Часто вам необходимо экспортировать ваши результаты из Python из NumPy в Excel для отчетности и обмена. Excel широко используется в бизнесе, школах и организациях, что делает его идеальным форматом для совместной работы.
В этом руководстве мы покажем вам шаг за шагом, как преобразовать NumPy в Excel с помощью Python и Aspose.Cells for Python через .NET.
Почему нужно конвертировать NumPy в Excel?
NumPy идеально подходит для вычислений и анализа в Python. Но нам часто нужно делиться результатами с другими. Большинство пользователей в бизнесе предпочитают Excel, потому что он знаком и прост в использовании.
Вот некоторые распространенные причины, почему вам может потребоваться экспортировать NumPy в Excel:
- Отчетность данных: Конвертируйте обработанные данные в файлы Excel для менеджеров или клиентов.
- Сотрудничество: Делитесь результатами с товарищами по команде, которые не используют Python.
- Бизнес-анализ: объедините результаты NumPy с существующими отчетами и панелями мониторинга Excel.
- Визуализация: используйте диаграммы Excel и сводные таблицы, чтобы сделать данные более значимыми.
Excel является универсальным форматом. Он преодолевает разрыв между разработчиками Python и нетехническими пользователями. Экспортируя массивы NumPy в Excel, вы делаете свои данные доступными, удобными для использования и легкими для понимания.
Python NumPy Excel Library
Aspose.Cells for Python — это мощная библиотека для работы с таблицами. Она позволяет создавать, редактировать и обрабатывать файлы Excel без установки Microsoft Excel. Это лучшая библиотека Excel для Python, разработанная для разработчиков, которым нужен полный контроль над документами Excel. Вы можете:
- Загрузите и сохраните файлы Excel в различных форматах.
- Работайте с листами, таблицами, диапазонами и диаграммами.
- Импортируйте и экспортируйте данные из объектов Python, включая массивы NumPy.
- Обрабатывайте большие наборы данных с высокой скоростью и точностью.
Лучшая часть заключается в том, что Aspose.Cells работает независимо. Вам не нужен Excel или какое-либо другое внешнее программное обеспечение. Он работает плавно в ваших Python-приложениях и хорошо интегрируется с научными рабочими процессами. Это делает его надежным решением для преобразования данных NumPy в файлы Excel.
Преобразование NumPy в Excel в Python
Простое преобразование массива NumPy в Excel с помощью Aspose.Cells. Выполните следующие быстрые шаги:
Шаг 1: Установите Aspose.Cells for Python через .NET
Установите пакет с помощью pip:
pip install aspose-cells-python
Шаг 2: Импортировать необходимые библиотеки
В вашем скрипте на Python импортируйте NumPy и Aspose.Cells:
import numpy as np
import aspose.cells as cells
Шаг 3: Создайте пример массива NumPy
Для тестирования создайте простой 2D массив:
data = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
Шаг 4: Определите пользовательскую функцию – insertnumpyarray
Значения NumPy часто приходят в виде типов, таких как numpy.int64
, numpy.float32
или numpy.bool
. Их нужно преобразовать в родные типы Python перед записью в ячейки Excel.
Функция-помощник ниже выполняет это преобразование и вставляет массив прямо в рабочий лист, начиная с заданной строки и столбца:
# Пользовательская функция для вставки массива NumPy в рабочий лист
def insert_numpy_array(sheet, ndarray, start_row=0, start_col=0):
rows, cols = ndarray.shape
for r in range(rows):
for c in range(cols):
value = ndarray[r, c]
# Преобразуйте типы NumPy в нативные типы Python
if isinstance(value, (np.integer,)):
value = int(value)
elif isinstance(value, (np.floating,)):
value = float(value)
elif isinstance(value, (np.bool_,)):
value = bool(value)
elif isinstance(value, (np.str_, np.str_)):
value = str(value)
sheet.cells.get(start_row + r, start_col + c).put_value(value)
В следующих разделах мы продемонстрируем, как вставить данные NumPy в Рабочую книгу, Рабочий лист, Объект списка, Диапазон и Именованный диапазон. Примеры кода в предстоящих разделах используют вспомогательную функцию, определенную в разделе Шаг 4: Пользовательская функция.
Как преобразовать NumPy ndarray в Excel Workbook
Вы можете создать полный Excel файл из массива NumPy всего за несколько строк. Этот метод идеально подходит, когда вы хотите экспортировать результаты анализа данных, выходные данные машинного обучения или табличные наборы данных в профессиональный Excel файл, который можно поделиться или дальше обработать.
Следуйте инструкциям ниже, чтобы преобразовать NumPy ndarray в Excel Workbook:
- Создайте 2D массив NumPy с вашими данными.
- Инициализируйте новую пустую книгу, используя класс
Workbook
. - Добавьте новый лист в книгу, используя метод
worksheets.add()
. - Получите доступ к новому листу по его индексу.
- Циклически проходите по массиву NumPy и вставляйте значения в ячейки рабочей таблицы.
- Сохраните рабочую книгу в формате Excel.
Следующий пример кода показывает, как преобразовать массив NumPy ndarray в Excel-рабочую книгу.
# Создайте массив NumPy
data = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# Преобразование массива NumPy в книгу Excel
workbook = cells.Workbook()
# Добавить новый лист
new_sheet_index = workbook.worksheets.add()
worksheet = workbook.worksheets.get(new_sheet_index)
# Вставьте массив в новый лист, начиная с ячейки A1
insert_numpy_array(worksheet, data)
# Сохраните книгу как файл Excel
workbook.save("numpy_to_workbook.xlsx")

Как преобразовать NumPy в рабочую книгу Excel
Вставить массив NumPy ndarray в лист
Иногда у вас уже есть рабочая книга, и вы просто хотите вставить данные NumPy в один лист.
Следуйте данным шагам, чтобы преобразовать ndarray NumPy в рабочий лист:
- Создайте 2D массив NumPy с вашими данными.
- Загрузите существующий файл Excel с помощью класса
Workbook
. - Выберите рабочий лист, на котором вы хотите разместить данные.
- Пройдите по массиву NumPy и вставьте значения в ячейки рабочего листа.
- Сохраните рабочую книгу в виде файла Excel.
Следующий пример кода показывает, как вставить массив NumPy ndarray в конкретный лист рабочей книги Excel:
# Создайте массив NumPy
data = np.array([['City', 'Region', 'Store'], ['Chicago', 'Central', 3055], ['New York', 'East', 3036],
['Detroit', 'Central', 3074]])
# Преобразуйте массив NumPy в рабочую книгу Excel
workbook = cells.Workbook("numpy_to_workbook.xlsx")
# Получите доступ к первому рабочему листу
sheet = workbook.worksheets.get(0)
# Вставить массив NumPy в лист, начиная с A1
insert_numpy_array(sheet, data, 0, 0)
# Сохраните рабочую книгу в формате Excel.
workbook.save("numpy_to_worksheet.xlsx")

Как преобразовать ndarray NumPy в рабочий лист
Как преобразовать NumPy ndarray в ListObject (таблица Excel)
Таблицы Excel (также называемые ListObjects) представляют собой мощный способ организации и анализа данных. С помощью Aspose.Cells вы можете напрямую импортировать массив NumPy в ListObject.
Пожалуйста, выполните следующие шаги, чтобы преобразовать NumPy ndarray в ListObject (таблицу Excel):
- Создайте 2D массив NumPy с образцами данных.
- Инициализируйте новую рабочую книгу и получите доступ к первому листу.
- Вставьте данные NumPy в ячейки рабочего листа, используя вспомогательную функцию.
- Определите начальные и конечные строки и столбцы на основе размеров массива.
- Добавьте
ListObject
в рабочий лист, используяworksheet.listobjects.add()
. - Назначьте отображаемое имя для
ListObject
. - Сохраните рабочую книгу в виде файла Excel.
Следующий пример кода показывает, как преобразовать ndarray NumPy в таблицу Excel:
# Создайте массив NumPy
data = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# Создайте новую книгу Excel
workbook = cells.Workbook()
worksheet = workbook.worksheets.get(0)
# Вставьте массив NumPy в рабочий лист, начиная с ячейки A1
insert_numpy_array(worksheet, data)
# Определите диапазон для объекта списка
start_row, start_col = 0, 0
end_row, end_col = data.shape[0] - 1, data.shape[1] - 1
# Добавить ListObject (таблицу Excel) из данных NumPy
index = worksheet.list_objects.add(start_row, start_col, end_row, end_col, True)
list_object = worksheet.list_objects[index]
# Установите имя для отображения таблицы
list_object.display_name = "NumPyTable"
# Сохраните рабочую книгу
workbook.save("numpy_to_listobject.xlsx")

Как преобразовать NumPy ndarray в ListObject (таблица Excel)
Преобразовать NumPy ndarray в диапазон
Иногда вы можете захотеть разместить массив NumPy в определенном диапазоне ячеек. Этот метод идеально подходит, когда вам нужно точно разместить данные в рабочих листах, например, заполнить предварительно определенную область таблицы или экспортировать результаты анализа в выбранный блок ячеек.
Следуйте приведённым ниже шагам, чтобы преобразовать NumPy ndarray в Range:
- Создайте 2D массив NumPy ndarray.
- Создайте новую книгу или откройте существующую.
- Выберите целевой рабочий лист.
- Пройдите через значения ndarray и вставьте их в соответствующие ячейки Excel.
- Создайте объект
Range
с помощьюcells.createrange(startcell, endcell)
. - Экспортируйте рабочий лист с заполненным диапазоном в файл Excel.
Следующий пример кода показывает, как вставить массив NumPy ndarray в диапазон Excel:
import numpy as np
from datetime import datetime
from aspose.cells import Workbook, CellsHelper
# Помощник для безопасного вставления значений NumPy в ячейки
def put_cell_value(cells, raw_value, row, col):
cell = cells.get(row, col)
if isinstance(raw_value, (np.bool_,)):
value = bool(raw_value)
elif isinstance(raw_value, (np.integer,)):
value = int(raw_value)
elif isinstance(raw_value, (np.floating,)):
value = float(raw_value)
elif isinstance(raw_value, (np.datetime64,)):
# Преобразование numpy datetime64 → Python datetime → строка, совместимая с Excel
value = str(np.datetime_as_string(raw_value, unit='D'))
else:
value = raw_value
cell.put_value(value)
# Функция для вставки массива NumPy в ячейки и возврата диапазона
def numpy_to_range(cells, data, start_row=0, start_col=0):
rows, cols = data.shape
for i in range(rows):
for j in range(cols):
put_cell_value(cells, data[i, j], start_row + i, start_col + j)
# Определите диапазон на основе начальной/конечной ячейки
start_cell = CellsHelper.cell_index_to_name(start_row, start_col)
end_cell = CellsHelper.cell_index_to_name(start_row + rows - 1, start_col + cols - 1)
return cells.create_range(start_cell, end_cell)
# Создайте образец массива NumPy
data = np.array([
['City', 'Region', 'Store', 'Date'],
['Chicago', 'Central', 3055, np.datetime64('2025-01-15')],
['New York', 'East', 3036, np.datetime64('2025-02-10')],
['Detroit', 'Central', 3074, np.datetime64('2025-03-05')]
])
# Создайте новую книгу и получите первый рабочий лист.
workbook = Workbook()
worksheet = workbook.worksheets.get(0)
cells = worksheet.cells
# Вставьте ndarray в рабочий лист как диапазон.
range_obj = numpy_to_range(cells, data, 0, 0)
print("Row count:", range_obj.row_count)
print("Column count:", range_obj.column_count)
# Сохраните книгу
workbook.save("numpy_to_range.xlsx")

Как преобразовать NumPy ndarray в диапазон
Как преобразовать массив NumPy ndarray в имя (именованный диапазон)
Иногда вы можете захотеть назначить значащее имя конкретному диапазону данных в Excel. Это облегчает ссылку на данные в формулах, диаграммах или других листах. В этом разделе мы покажем вам, как конвертировать NumPy в именованный диапазон Excel с использованием Python и Aspose.Cells. Создавая именованный диапазон, вы можете более эффективно работать с вашими данными NumPy в Excel.
Следуйте шагам ниже, чтобы преобразовать ndarray NumPy в именованный диапазон в Excel с использованием Aspose.Cells.
- Создайте массив NumPy в Python.
- Создайте новую книгу и получите доступ к целевому рабочему листу.
- Пройдите по массиву и вставьте каждое значение в рабочий лист.
- Определите диапазон, охватывающий импортированные данные.
- Назначьте имя этому диапазону.
- Сохраните рабочую книгу в формате Excel.
Следующий кодовый пример показывает, как вставить массив NumPy ndarray в именованный диапазон в Excel:
import numpy as np
import aspose.cells
from aspose.cells import Workbook, CellsHelper
# Функция помощник для вставки данных NumPy в ячейки рабочего листа
def put_cell_value(cells, raw_value, row, column):
if isinstance(raw_value, (np.bool_)):
value = bool(raw_value)
elif isinstance(raw_value, (np.integer)):
value = int(raw_value)
elif isinstance(raw_value, (np.floating)):
value = float(raw_value)
elif isinstance(raw_value, (np.datetime64)):
value = str(np.datetime_as_string(raw_value, unit='D'))
else:
value = str(raw_value)
cells.get(row, column).put_value(value)
def insert_ndarray_into_cells(cells, data, start_row, start_col):
row_count = data.shape[0]
col_count = data.shape[1]
for r in range(row_count):
for c in range(col_count):
put_cell_value(cells, data[r][c], start_row + r, start_col + c)
# Вернуть покрытую площадь ячейки
end_row = start_row + row_count - 1
end_col = start_col + col_count - 1
return (start_row, start_col, end_row, end_col)
# ---------------------------
# Основной код
# ---------------------------
# Создайте образец массива NumPy
data = np.array([
['Product', 'Region', 'Sales'],
['Laptop', 'East', 1200],
['Phone', 'West', 950],
['Tablet', 'North', 740]
])
# Создайте новую книгу.
workbook = Workbook()
worksheet = workbook.worksheets.get(0)
cells = worksheet.cells
# Вставить ndarray в ячейки, начиная с (0,0)
(start_row, start_col, end_row, end_col) = insert_ndarray_into_cells(cells, data, 0, 0)
# Получить ссылки на ячейки Excel
start_cell = CellsHelper.cell_index_to_name(start_row, start_col)
end_cell = CellsHelper.cell_index_to_name(end_row, end_col)
# Создайте именованный диапазон для этого ndarray
idx = workbook.worksheets.names.add("SalesData") # returns index
named_range = workbook.worksheets.names[idx] # get the Name object
named_range.refers_to = f"={worksheet.name}!{start_cell}:{end_cell}"
# Сохраните книгу.
workbook.save("numpy_to_named_range.xlsx")

Как преобразовать NumPy ndarray в имя (именованный диапазон)
Начните работу с Aspose.Cells for Python
Вы теперь увидели, как легко преобразовать массивы NumPy в Excel с помощью Aspose.Cells. Эта библиотека предоставляет вам полный контроль над книгами, листами, таблицами, диапазонами и именованными диапазонами.
Вот некоторые полезные ссылки для углубления вашего понимания:
- Документация продукта
- API Reference
- Бесплатные онлайн инструменты Excel
- Учебники и руководства для разработчиков
Получите бесплатную временную лицензию и начните использовать Aspose.Cells сегодня, чтобы сделать ваши данные Python полностью совместимыми с рабочими процессами Excel.
NumPy to Excel: FAQs
Q1: Нужно ли мне иметь установленный Microsoft Excel для использования Aspose.Cells?
Нет. Aspose.Cells работает независимо. Вам не нужно устанавливать Excel или какое-либо другое программное обеспечение.
Q2: Может ли Aspose.Cells обрабатывать большие массивы NumPy?
Да. Библиотека оптимизирована для работы с большими наборами данных и хорошо справляется даже с большими массивами.
Q3: Какие форматы Excel поддерживаются?
Вы можете сохранить свои данные NumPy в формате XLSX, XLS, CSV, ODS и многих других форматах таблиц.
Q4: Могу ли я отформатировать ячейки Excel после экспорта данных NumPy?
Да. Вы можете применять стили, форматы чисел, формулы и даже создавать диаграммы или сводные таблицы.
Q5: Есть ли бесплатная версия Aspose.Cells?
Да. Вы можете скачать бесплатную версию или запросить временную лицензию для тестирования.
Заключение
NumPy является основным инструментом для научных данных и численного анализа в Python, но отчетность в реальном мире часто требует Excel. С помощью Aspose.Cells for Python через .NET преобразование NumPy в Excel становится простым и гибким. В этом руководстве мы рассмотрели различные методы: экспортирование массивов NumPy в полный рабочий файл, вставка данных в рабочий лист, форматирование как ListObject (таблица Excel), отображение массивов в диапазон и назначение их именованному диапазону. Каждый подход служит уникальной цели. Объединив мощь NumPy с гибкостью Aspose.Cells, вы можете эффективно перейти от анализа на Python к профессиональным отчетам Excel, обеспечивая доступность и готовность ваших данных к презентации.
Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь задавать их на нашем free support forum, и мы будем рады помочь.