Робота з даними Excel у Python є поширеною. Це часто передбачає переміщення даних з Excel у форму, яку можна ефективно маніпулювати. Перетворення даних Excel у формат, готовий для аналізу, може бути складним. У цьому блозі ви дізнаєтеся, як перетворити Excel на масиви NumPy всього за кілька рядків коду.
Чому NumPy?
NumPy (Числовий Python) є бібліотекою Python з відкритим кодом. Вона є основою для науки про дані та машинного навчання в Python. NumPy надає швидкі операції з масивами та ефективні числові обчислення. Вона добре працює з pandas, TensorFlow та scikit-learn. Бібліотека підтримує багатовимірні масиви, матриці, лінійну алгебру та перетворення Фур’є. Масиви використовують суцільну пам`ять, що робить їх швидшими за списки Python. Ця швидкість робить NumPy основним інструментом для наукових обчислень та аналізу даних.
Excel широко використовується для зберігання наборів даних, але не оптимізований для робочих процесів Python. Традиційні методи конвертації часто потребують додаткових бібліотек, кількох етапів і ручного парсингу. Aspose.Cells дозволяє експортувати дані з Excel, TSV, CSV і JSON форматів безпосередньо в масиви NumPy. Це з’єднує електронні таблиці з числовими інструментами Python.
What is Aspose.Cells for Python?
Aspose.Cells є найкращою бібліотекою Excel для Python розробників. Вона дозволяє читати, створювати та маніпулювати електронними таблицями без використання Microsoft Excel. Варіант Python через .NET вбудовує .NET версію Aspose.Cells і відкриває її для Python. Aspose.Cells спрощує процес конвертації Excel в NumPy. Вона дозволяє експортувати цілий робочий зошит, аркуш, діапазон, рядок, стовпець або навіть об’єкт списку безпосередньо в ndarrays NumPy. Це означає, що ви можете переходити від сирих файлів Excel до чистих, готових до використання даних для аналізу або машинного навчання з мінімальними зусиллями.
Ви можете встановити його з PyPI:
pip install aspose‑cells‑python
Після установки імпортуйте бібліотеку разом з NumPy:
import aspose.cells as cells
import numpy as np
Як конвертувати робочий зошит Excel у NumPy
Робоча книга може містити кілька аркушів. Ви можете експортувати всю книгу Excel в масив NumPy ndarray одним рухом. Це зручно, коли ви хочете обробити дані з усіх аркушів безпосередньо в Python.
Слідкуйте за наведеними нижче кроками, щоб конвертувати книгу Excel у масив NumPy ndarray:
- Завантажте файл Excel, використовуючи клас
Workbook. - Доступ до всіх аркушів з робочої книги.
- Переберіть кожен аркуш, щоб прочитати його використані рядки та стовпці.
- Extract cell values row by row.
- Зберігайте дані кожного аркуша у список списків.
- Перетворіть зібрані дані в масив NumPy, використовуючи np.asarray().
Ось спрощений скрипт Python, який експортує зразок робочої книги:
import aspose.cells as cells
import numpy as np
# load workbook
workbook = cells.Workbook("sample_data.xlsx")
sheets = workbook.worksheets
# підготуйте пустий список для зберігання даних листа
sheets_data = []
# перебирать аркуші
for sheet in sheets:
# sheet = workbook.worksheets.get(sheetindex)
sheet_cells = sheet.cells
max_row = sheet_cells.max_data_row + 1 # number of populated rows
max_col = sheet_cells.max_data_column + 1 # number of populated columns
sheet_rows = []
for r in range(max_row):
row_values = []
for c in range(max_col):
cell = sheet_cells.check_cell(r, c)
row_values.append(cell.value if cell else "")
sheet_rows.append(row_values)
sheets_data.append(sheet_rows)
# перетворити на ndarray з dtype=object для збереження рядків
excel_array = np.asarray(sheets_data, dtype=object)
print(excel_array)

Як перетворити робочий зошит Excel в NumPy
Цей скрипт замінює будь-які пусті комірки на порожні рядки та об’єднує всі аркуші в один масив NumPy. Остаточний excelarray є тривимірним: перший рівень представляє аркуші, другий - рядки, а третій - стовпці.
[[['City', 'Region', 'Store'],
['Chicago', 'Central', '3055'],
['New York', 'East', '3036'],
['Detroit', 'Central', '3074']],
[['City2', 'Region2', 'Store3'],
['Seattle', 'West', '3000'],
['philadelph', 'East', '3082'],
['Detroit', 'Central', '3074']],
[['City3', 'Region3', 'Store3'],
['Seattle', 'West', '3166'],
['New York', 'East', '3090'],
['Chicago', 'Central', '3055']]]
Перетворення єдиного аркуша на NumPy
Іноді вам може знадобитися працювати з однією таблицею, а не з цілим робочим зошитом. Ви можете безпосередньо витягти значення ячеек однієї таблиці та перетворити їх у NumPy ndarray, дотримуючись наведених нижче кроків:
- Завантажте файл Excel за допомогою класу
Workbook. - Отримайте доступ до цільового аркуша за його індексом.
- Отримайте максимально вжиті рядки та стовпці.
- Переберіть кожен рядок і стовпець, щоб зібрати значення клітинок.
- Збережіть витягнуті дані в списку.
- Перетворіть список на масив NumPy з допомогою np.asarray().
Ось сценарій Python, який експортує один аркуш:
import aspose.cells as cells
import numpy as np
# завантажити робочу книгу
workbook = cells.Workbook("sample_data.xlsx")
# отримайте доступ до першого аркуша
sheet = workbook.worksheets[0]
# get max rows and columns with data
max_row = sheet.cells.max_data_row + 1
max_col = sheet.cells.max_data_column + 1
# extract data
rows = []
for r in range(max_row):
row_values = []
for c in range(max_col):
cell = sheet.cells.check_cell(r, c)
row_values.append(cell.value if cell else "")
rows.append(row_values)
# convert to numpy ndarray
worksheet_array = np.asarray(rows, dtype=object)
print(worksheet_array)
Це створює 2D ndarray, де рядки відповідають рядкам Excel, а стовпці відповідають стовпцям Excel.
[['City' 'Region' 'Store']
['Chicago' 'Central' '3055']
['New York' 'East' '3036']
['Detroit' 'Central' '3074']]
Як конвертувати діапазон Excel у NumPy
В певних випадках вам потрібен лише певний діапазон клітин. Aspose.Cells дозволяє вам визначити діапазон і експортувати його безпосередньо в масив NumPy ndarray.
Слідуйте наведеним крокам:
- Завантажте робочий зошит за допомогою класу
Workbook. - Виберіть цільовий аркуш.
- Визначте діапазон, використовуючи метод
worksheet.cells.createrange(). - Переберіть рядки та стовпці діапазону, щоб витягти значення.
- Перетворіть значення в масив NumPy, використовуючи np.asarray().
Наступний приклад коду демонструє, як перетворити діапазон комірок з Excel в масив NumPy ndarray:
import aspose.cells as cells
import numpy as np
# load workbook
workbook = cells.Workbook("sample_data.xlsx")
# вибрати перший аркуш
sheet = workbook.worksheets.get(0)
# визначити діапазон (B1 до C3)
cell_range = sheet.cells.create_range("B1", "C3")
# видобути дані з діапазону
range_data = []
for r in range(cell_range.row_count):
row_values = []
for c in range(cell_range.column_count):
cell = sheet.cells.check_cell(r, c)
row_values.append(cell.value if cell else "")
range_data.append(row_values)
# перетворити на масив ndarray numpy
range_array = np.asarray(range_data, dtype=object)
print(range_array)
Якщо обраний діапазон охоплює два стовпці і три рядки, отриманий масив матиме розмір 3×2, наприклад:
[['City' 'Region']
['Chicago' 'Central']
['New York' 'East']]
Конвертування таблиці Excel (ListObject) в NumPy
Excel таблиця - це структурований діапазон даних з заголовками і рядками. У Aspose.Cells це представляється як ListObject. Ви можете легко експортувати вміст Excel таблиці у NumPy ndarray для подальшої обробки в Python.
- Завантажте книгу та виберіть аркуш.
- Отримайте доступ до ListObject (таблиці Excel) з аркуша.
- Експортуйте дані таблиці в двовимірний масив.
- Перетворіть масив у NumPy ndarray.
- Використовуйте ndarray для наукових досліджень даних або робочих процесів машинного навчання.
Наступний приклад коду демонструє, як експортувати таблицю Excel (ListObject) до NumPy:
import aspose.cells as cells
import numpy as np
# Load Excel file
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)
# Створіть таблицю, що охоплює A1:C4 з заголовками.
index = sheet.list_objects.add("A1", "C4", True)
table = sheet.list_objects[index]
rows = []
for r in range(table.start_row, table.end_row + 1):
row_vals = []
for c in range(table.start_column, table.end_column + 1):
cell = sheet.cells.check_cell(r, c)
row_vals.append(cell.value if cell else "")
rows.append(row_vals)
list_object_array = np.asarray(rows, dtype=object)
print(list_object_array)
Результуючий масив NumPy ndarray буде містити рядки та стовпці таблиці Excel, включаючи заголовки, якщо вони є частиною діапазону даних.
[['City', 'Region', 'Store'],
['Chicago', 'Central', '3055'],
['New York', 'East', '3036'],
['Detroit', 'Central', '3074']]
Як конвертувати ряд Excel в NumPy
Іноді вам потрібні дані тільки з одного рядка в Excel. Aspose.Cells робить це простим, щоб витягнути один рядок і завантажити його безпосередньо в ndarray NumPy.
- Завантажте робочу книгу Excel.
- Виберіть аркуш.
- Виберіть індекс рядка, який ви хочете експортувати.
- Експортуйте значення рядка як масив.
- Перетворіть масив у ndarray NumPy для обробки.
Наступний код Python демонструє, як конвертувати рядок аркуша Excel у масив NumPy ndarray:
import aspose.cells as cells
import numpy as np
# Завантажити файл Excel
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)
sheet_cells = sheet.cells
max_col = sheet_cells.max_data_column + 1
# виберіть рядок (наприклад, останній рядок даних)
row_index = sheet_cells.max_data_row
row_vals = []
for c in range(max_col):
cell = sheet_cells.check_cell(row_index, c)
row_vals.append(cell.value if cell else "")
row_array = np.asarray(row_vals, dtype=object)
print(row_array)
Результуючий масив NumPy ndarray буде одновимірним масивом, що містить усі значення з вибраного рядка.
['Detroit' 'Central' 3074]
Перетворити стовпець Excel у NumPy
В деяких випадках вам можуть знадобитися лише значення з одного стовпця аркуша Excel. Aspose.Cells дозволяє легко експортувати стовпець та перетворювати його в масив ndarray NumPy.
- Завантажте робочу книгу Excel.
- Виберіть цільовий аркуш.
- Виберіть індекс стовпця для експорту.
- Експортуйте значення стовпця.
- Перетворіть значення в ndarray NumPy.
Наступний код Python демонструє, як конвертувати стовпець аркуша Excel у масив NumPy ndarray:
import aspose.cells as cells
import numpy as np
# Завантажте файл Excel
workbook = cells.Workbook("D:\\Files\\sample_data.xlsx")
sheet = workbook.worksheets.get(0)
sheet_cells = sheet.cells
max_row = sheet_cells.max_data_row + 1
# виберіть стовпець (наприклад, останній стовпець даних)
col_index = sheet_cells.max_data_column
col_vals = []
for r in range(max_row):
cell = sheet_cells.check_cell(r, col_index)
col_vals.append(cell.value if cell else "")
column_array = np.asarray(col_vals, dtype=object)
print(column_array)
Результуючий масив NumPy ndarray буде одновимірним масивом, що містить всі значення з вибраного стовпця.
['Store' 3055 3036 3074]
Поради щодо роботи з Aspose.Cells та NumPy
Розгляд пам’яті: Конвертація дуже великих робочих книг у масиви NumPy може споживати значну пам’ять. Обробляйте аркуші окремо або читайте конкретні діапазони, якщо це можливо.
Типи даних: Якщо ваша електронна таблиця містить змішані типи (рядки, числа, дати), вкажіть dtype=object при перетворенні списків на масиви NumPy. Для однорідних числових даних ви можете дозволити NumPy визначити тип автоматично.
Відсутні значення: Aspose.Cells повертає None для порожніх клітинок. У наведених вище прикладах ми замінили їх на порожні рядки. Ви також можете замінити їх на np.nan або інше значення-сигнал залежно від вашого випадку використання.
Отримайте безкоштовну ліцензію
Ви хочете дослідити всю потужність Aspose.Cells for Python? Ви можете запитати безкоштовну тимчасову ліцензію.Це дозволяє вам тестувати всі функції без обмежень або водяних знаків оцінки.
З тимчасовим ліцензією ви можете:
- Працюйте з великими файлами Excel.
- Apply advanced formatting and styling.
- Виконуйте конверсії (наприклад, Excel у PDF, NumPy та інші).
Це найкращий спосіб оцінити продуктивність і сумісність з вашими проектами перед прийняттям рішення про купівлю.
Корисні ресурси
Ось кілька цінних ресурсів, які допоможуть вам розпочати роботу з Aspose.Cells for Python через .NET:
- Документація продукту
- API Reference
- Безкоштовні онлайн інструменти Excel
- Посібники та навчальні матеріали для розробників
Висновок
Aspose.Cells for Python через .NET спрощує конвертацію даних Excel в масиви NumPy. Будь то вся книга, один аркуш, певний діапазон, таблиця, рядок або стовпець, бібліотека надає чіткі методи для ітерації через клітинки та побудови списків, які може обробляти NumPy. Поєднуючи можливість Aspose.Cells читати багато форматів електронних таблиць із чисельною потужністю NumPy, ви можете безперешкодно інтегрувати дані Excel у свої дані Python.
Якщо у вас є будь-які запитання, будь ласка, не соромтеся запитати на нашому безкоштовному форумі підтримки, і ми будемо раді допомогти.
