Преобразование Excel в NumPy

Введение в NumPy

NumPy (Numerical Python) - это открытое расширение числовых вычислений Python. Этот инструмент может использоваться для хранения и обработки больших матриц, что намного эффективнее, чем вложенная структура списков Python (которая также может использоваться для представления матриц). Он поддерживает большое количество многомерных массивов и операций с матрицами, а также предоставляет большое количество библиотек математических функций для операций с массивами.

Основные функции NumPy:

  1. Ndarray - это многомерный массив, представляющий собой быструю, гибкую и экономящую место структуру данных.
  2. Линейная алгебра, включая умножение матриц, транспонирование, обращение и т.д.
  3. Преобразование Фурье, выполнение быстрого преобразования Фурье для массива.
  4. Быстрые операции с массивами с плавающей запятой.
  5. Интеграция кода на языке C в Python для увеличения скорости его выполнения.

С помощью Aspose.Cells для Python via .NET API вы можете конвертировать Excel, TSV, CSV, Json и множество других форматов в Numpy ndarray.

Как конвертировать книгу Excel в NumPy ndarray

Вот пример кода, демонстрирующий, как экспортировать данные Excel в массив NumPy, используя Aspose.Cells для Python via .NET:

  1. Загрузите образец файла.
  2. Обработайте данные Excel и экспортируйте данные в массив NumPy, используя Aspose.Cells для Python via .NET.
import numpy as np
import aspose.cells
from aspose.cells import Workbook, Worksheet, Range
# Open the Excel workbook
book = Workbook("sample_data.xlsx")
# workbook to ndarray
excel_ndarray = np.array([], dtype= object)
sheet_count = book.worksheets.capacity - 1
excel_list = []
for sheet_index in range(0, sheet_count):
sheet_list =[]
sheet = book.worksheets.get(sheet_index)
cells = sheet.cells
rows = cells.rows
max_column_index = cells.max_column + 1
row_count = rows.count
index = -1
for row_index in range(0, row_count):
row = rows.get_row_by_index(row_index)
if row_index != row.index:
for blank_row_index in range(index+1, row.index):
blank_row =[]
for blank_column_index in range(0,max_column_index):
blank_row.append("")
sheet_list.append(blank_row)
data_row =[]
for column_index in range(0,max_column_index):
curr_cell = cells.check_cell(row.index, column_index)
if curr_cell:
data_row.append(curr_cell.value)
else:
data_row.append("")
sheet_list.append(data_row)
index = row.index
excel_list.append(sheet_list)
excel_ndarray = np.asarray(excel_list)
print(excel_ndarray)

Результат вывода:

[[['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 ndarray

Вот пример кода, демонстрирующий, как экспортировать данные рабочего листа в Numpy ndarray, используя Aspose.Cells для Python via .NET:

  1. Загрузите образец файла.
  2. Получите первый лист.
  3. Конвертируйте данные рабочего листа в Numpy ndarray, используя Aspose.Cells для Python Excel библиотеки.
import numpy as np
import aspose.cells
from aspose.cells import Workbook, Worksheet, Range
# Open the Excel workbook
book = Workbook("sample_data.xlsx")
# Get the first worksheet
sheet1 = book.worksheets.get(0)
cells = sheet1.cells
rows = cells.rows
max_column_index = sheet1.cells.max_column + 1
# worksheet to ndarray
worksheet_list =[]
row_count = rows.count
index = -1
for row_index in range(0, row_count):
row = rows.get_row_by_index(row_index)
if row_index != row.index:
for blank_row_index in range(index+1, row.index):
blank_row =[]
for blank_column_index in range(0,max_column_index):
blank_row.append("")
worksheet_list.append(blank_row)
data_row =[]
for column_index in range(0,max_column_index):
curr_cell = cells.check_cell(row.index, column_index)
if curr_cell:
data_row.append(curr_cell.value)
else:
data_row.append("")
worksheet_list.append(data_row)
index = row.index
worksheet_ndarray = np.asarray(worksheet_list)
print(worksheet_ndarray)

Результат вывода:

[['City' 'Region' 'Store']    
 ['Chicago' 'Central' '3055'] 
 ['New York' 'East' '3036']   
 ['Detroit' 'Central' '3074']]

Как конвертировать диапазон Excel в NumPy ndarray

Вот пример кода, демонстрирующий, как экспортировать данные диапазона в массив NumPy, используя Aspose.Cells для Python via .NET:

  1. Загрузите образец файла.
  2. Получите первый лист.
  3. Создайте диапазон.
  4. Конвертируйте данные диапазона в Numpy ndarray, используя Aspose.Cells для Python Excel библиотеки.
import numpy as np
import aspose.cells
from aspose.cells import Workbook, Worksheet, Range
# Open the Excel workbook
book = Workbook("sample_data.xlsx")
# Get the first worksheet
sheet1 = book.worksheets.get(0)
# range to ndarray
cells = sheet1.cells
range_obj = cells.create_range("B1", "C3")
range_list =[]
for row_index in range(range_obj.first_row , range_obj.first_row + range_obj.row_count ):
row =[]
for column_index in range(range_obj.first_column, range_obj.first_column + range_obj.column_count):
curr_cell = cells.check_cell(row_index, column_index)
if curr_cell:
row.append(curr_cell.value)
else:
row.append("")
range_list.append(row)
range_ndarray = np.asarray(range_list)
print(range_ndarray)

Результат вывода:

[['Region' 'Store']
 ['Central' '3055']
 ['East' '3036']]

Как конвертировать ListObject Excel в NumPy ndarray

Вот пример фрагмента кода, демонстрирующий, как экспортировать данные ListObject в массив NumPy, используя Aspose.Cells для Python via .NET:

  1. Загрузите образец файла.
  2. Получите первый лист.
  3. Создайте объект ListObject.
  4. Преобразуйте данные ListObject в массив NumPy с использованием библиотеки Excel для Python Aspose.Cells.
import numpy as np
import aspose.cells
from aspose.cells import Workbook, Worksheet, Range
# Open the Excel workbook
book = Workbook("sample_data.xlsx")
# Get the first worksheet
sheet1 = book.worksheets.get(0)
cells = sheet1.cells
# listobject to ndarray
table_index = sheet1.list_objects.add("A1", "C4", True)
table = sheet1.list_objects[table_index]
table_list =[]
for row_index in range(table.start_row , table.end_row + 1):
row =[]
for column_index in range(table.start_column, table.end_column + 1):
curr_cell = cells.check_cell(row_index, column_index)
if curr_cell:
row.append(curr_cell.value)
else:
row.append("")
table_list.append(row)
table_ndarray = np.asarray(table_list)
print(table_ndarray)

Результат вывода:

[['City' 'Region' 'Store']
 ['Chicago' 'Central' '3055']
 ['New York' 'East' '3036']
 ['Detroit' 'Central' '3074']]

Как преобразовать строку Excel в массив NumPy

Вот пример фрагмента кода, демонстрирующий, как экспортировать данные строки в массив NumPy, используя Aspose.Cells для Python via .NET:

  1. Загрузите образец файла.
  2. Получите первый лист.
  3. Получите объект строки по индексу строки.
  4. Преобразуйте данные строки в массив NumPy с использованием библиотеки Excel для Python Aspose.Cells.
import numpy as np
import aspose.cells
from aspose.cells import Workbook, Worksheet, Range
# Open the Excel workbook
book = Workbook("sample_data.xlsx")
# Get the first worksheet
sheet1 = book.worksheets.get(0)
cells = sheet1.cells
max_column_index = cells.max_column + 1
# row to ndarray
row_index = cells.max_data_row
row_list = []
for column_index in range(0,max_column_index):
curr_cell = cells.check_cell(row_index, column_index)
if curr_cell:
row_list.append(curr_cell.value)
else:
row_list.append("")
row_ndarray = np.asarray(row_list)
print(row_ndarray)

Результат вывода:

['Detroit' 'Central' '3074']

Как преобразовать столбец Excel в массив NumPy

Вот пример фрагмента кода, демонстрирующий, как экспортировать данные столбца в массив NumPy, используя Aspose.Cells для Python via .NET:

  1. Загрузите образец файла.
  2. Получите первый лист.
  3. Получите объект столбца по индексу столбца.
  4. Преобразуйте данные столбца в массив NumPy с использованием библиотеки Excel для Python Aspose.Cells.
import numpy as np
import aspose.cells
from aspose.cells import Workbook, Worksheet, Range
# Open the Excel workbook
book = Workbook("sample_data.xlsx")
# Get the first worksheet
sheet1 = book.worksheets.get(0)
cells = sheet1.cells
max_row_index = cells.max_row + 1
# column to ndarray
column_index = cells.max_data_column
column_list = []
for row_index in range(0,max_row_index):
curr_cell = sheet1.cells.check_cell(row_index, column_index)
if curr_cell:
column_list.append(curr_cell.value)
else:
column_list.append("")
column_ndarray = np.asarray(column_list)
print(column_ndarray)

Результат вывода:

['Store' '3055' '3036' '3074']