Python에서 Excel 데이터를 다루는 것은 일반적입니다. 이 과정은 종종 Excel에서 데이터를 효율적으로 조작할 수 있는 형식으로 이동하는 것을 포함합니다. Excel 데이터를 분석 준비가 된 형식으로 변환하는 것은 까다로울 수 있습니다. 이 블로그 게시물에서는 몇 줄의 코드로 Excel을 NumPy 배열로 변환하는 방법을 배울 것입니다.
왜 NumPy인가요?
NumPy (수치 파이썬)은 오픈 소스 파이썬 라이브러리입니다. 이것은 파이썬에서 데이터 과학 및 머신 러닝의 기반입니다. NumPy는 빠른 배열 연산과 효율적인 수치 계산을 제공합니다. 그것은 pandas, TensorFlow 및 scikit-learn과 원활하게 작동합니다. 이 라이브러리는 다차원 배열, 행렬, 선형 대수 및 푸리에 변환을 지원합니다. 배열은 연속적인 메모리를 사용하여 파이썬 리스트보다 빠릅니다. 이 속도는 NumPy를 과학적 컴퓨팅 및 데이터 분석을 위한 핵심 도구로 만듭니다.
Excel은 데이터셋을 저장하는 데 널리 사용되지만 Python 워크플로우에 최적화되어 있지 않습니다. 전통적인 변환 방법은 종종 추가 라이브러리, 여러 단계 및 수동 구문 분석을 필요로 합니다. Aspose.Cells를 사용하면 Excel, TSV, CSV, 및 JSON 형식의 데이터를 NumPy 배열로 직접 내보낼 수 있습니다. 이는 스프레드시트를 Python의 숫자 도구와 연결합니다.
Aspose.Cells for Python은 파이썬에서 스프레드시트 파일을 읽고, 작성하고, 수정할 수 있는 라이브러리입니다.
Aspose.Cells는 파이썬을 위한 최고의 엑셀 라이브러리입니다. 이 라이브러리를 사용하면 Microsoft Excel에 의존하지 않고 스프레드시트를 읽고, 생성하고, 조작할 수 있습니다. .NET 변형을 통한 파이썬 버전은 Aspose.Cells의 .NET 버전을 포함하고 이를 파이썬에 노출합니다. Aspose.Cells는 엑셀을 NumPy로 변환하는 과정을 간소화합니다. 이를 통해 전체 워크북, 워크시트, 범위, 행, 열 또는 심지어 리스트 객체를 NumPy ndarrays로 직접 내보낼 수 있습니다. 이는 원시 엑셀 파일에서 분석이나 머신 러닝을 위한 깨끗하고 사용 준비가 된 데이터로 최소한의 노력으로 이동할 수 있음을 의미합니다.
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로 변환하세요:
Workbook
클래스를 사용하여 Excel 통합 문서를 로드하십시오.- 모든 워크북에서 모든 워크시트에 액세스합니다.
- 각 워크시트를 반복하여 사용된 행과 열을 읽습니다.
- 셀 값을 행 단위로 추출합니다.
- 각 시트의 데이터를 리스트의 리스트로 저장하십시오.
- 수집된 데이터를 np.asarray()를 사용하여 NumPy ndarray로 변환하십시오.
여기 샘플 워크북을 내보내는 간단한 Python 스크립트가 있습니다:
import aspose.cells as cells
import numpy as np
# 워크북 로드
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는 3차원입니다: 첫 번째 수준은 시트를 나타내고, 두 번째 수준은 행을 나타내며, 세 번째 수준은 열을 나타냅니다.
[[['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로 변환할 수 있습니다:
Workbook
클래스로 Excel 파일을 불러옵니다.- 대상 워크시트를 인덱스를 통해 접근하세요.
- 최대 사용된 행과 열을 가져옵니다.
- 각 행과 열을 순회하여 셀 값을 수집합니다.
- 추출된 데이터를 목록에 저장하세요.
- 목록을 np.asarray()로 NumPy ndarray로 변환하세요.
여기 단일 워크시트를 내보내는 파이썬 스크립트가 있습니다:
import aspose.cells as cells
import numpy as np
# load workbook
workbook = cells.Workbook("sample_data.xlsx")
# 첫 번째 워크시트를 엽니다.
sheet = workbook.worksheets[0]
# 데이터가 있는 최대 행과 열 가져오기
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)
# numpy ndarray로 변환하다.
worksheet_array = np.asarray(rows, dtype=object)
print(worksheet_array)
이것은 행이 Excel 행에 매핑되고 열이 Excel 열에 매핑되는 2D ndarray를 생성합니다.
[['City' 'Region' 'Store']
['Chicago' 'Central' '3055']
['New York' 'East' '3036']
['Detroit' 'Central' '3074']]
Excel의 범위를 NumPy로 변환하는 방법
특정 경우에는 특정 셀 범위만 필요합니다. Aspose.Cells를 사용하면 범위를 정의하고 이를 NumPy ndarray로 직접 내보낼 수 있습니다.
다음 단계를 따르십시오:
Workbook
클래스로 워크북을 로드합니다.- 대상 워크시트를 선택하십시오.
worksheet.cells.createrange()
메서드를 사용하여 범위를 정의합니다.- 범위의 행과 열을 반복하여 값을 추출합니다.
- 값을 NumPy ndarray로 변환하려면 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)
# numpy ndarray로 변환
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 테이블)에 접근합니다.
- 테이블의 데이터를 2차원 배열로 내보내십시오.
- 배열을 NumPy ndarray로 변환하십시오.
- 데이터 과학 또는 머신 러닝 워크플로를 위해 ndarray를 사용하세요.
다음 코드 예제는 Excel 테이블 (ListObject)을 NumPy로 내보내는 방법을 보여줍니다:
import aspose.cells as cells
import numpy as np
# Excel 파일 불러오기
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는 한 행을 추출하고 이를 NumPy ndarray에 직접 로드하는 것을 간단하게 만들어줍니다.
- Excel 워크북을 불러오세요.
- 워크시트를 선택하십시오.
- 내보내고 싶은 행 인덱스를 선택하세요.
- 행 값을 배열로 내보내기.
- 배열을 처리하기 위해 NumPy ndarray로 변환하십시오.
다음 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]
엑셀의 열을 NumPy로 변환하기
때때로 Excel 시트의 단일 열에서만 값이 필요할 수 있습니다. Aspose.Cells를 사용하면 열을 쉽게 내보내고 NumPy ndarray로 변환할 수 있습니다.
- Excel 워크북을 불러오세요.
- 대상 워크시트를 선택하십시오.
- 열 인덱스를 선택하여 내보내십시오.
- 열 값을 내보내십시오.
- 값을 NumPy ndarray로 변환합니다.
다음 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 배열로 변환하면 상당한 메모리를 소모할 수 있습니다. 가능하다면 워크시트를 개별적으로 처리하거나 특정 범위를 읽으십시오.
데이터 유형: 스프레드시트에 문자열, 숫자, 날짜와 같은 혼합 유형이 포함된 경우, 리스트를 NumPy 배열로 변환할 때 dtype=object를 지정하십시오. 동질적인 숫자 데이터의 경우 NumPy가 유형을 추론하도록 할 수 있습니다.
누락된 값: Aspose.Cells는 빈 셀에 대해 None을 반환합니다. 위의 예에서 우리는 이들을 빈 문자열로 대체했습니다. 사용 사례에 따라 np.nan 또는 다른 센티넬 값으로 대체할 수도 있습니다.
무료 라이선스 받기
Aspose.Cells for Python의 모든 기능을 탐색하고 싶으신가요? 무료 임시 라이센스를 요청하실 수 있습니다. 이를 통해 모든 기능을 제한 없이 평가할 수 있습니다.
임시 면허로 다음과 같은 작업을 할 수 있습니다:
- 대용량 Excel 파일로 작업하십시오.
- Apply advanced formatting and styling.
- 변환 수행 (예: Excel에서 PDF로, NumPy 등).
성능과 호환성을 평가하고 구매 결정을 내리기 전에 귀하의 프로젝트와의 호환성을 평가하는 가장 좋은 방법입니다.
유용한 자료
여기 Aspose.Cells for Python via .NET을 시작하는 데 도움이 되는 몇 가지 유용한 리소스가 있습니다:
결론
Aspose.Cells for Python via .NET는 Excel 데이터를 NumPy 배열로 변환하는 과정을 간소화합니다. 전체 워크북, 단일 시트, 특정 범위, 테이블, 행 또는 열이 필요하든, 이 라이브러리는 셀을 반복하고 NumPy가 사용할 수 있는 목록을 만드는 명확한 방법을 제공합니다. Aspose.Cells의 다양한 스프레드시트 형식을 읽는 기능과 NumPy의 수치적 강력을 결합함으로써, Excel 데이터를 Python 데이터 파이프라인에 원활하게 통합할 수 있습니다.
질문이 있으시면 주저하지 마시고 저희의 free support forum에서 문의해 주십시오. 기꺼이 도와드리겠습니다.