파이썬에서 CSV에 NumPy 배열 쓰기

Manav Narula 2023년1월30일
  1. pandas DataFrame을 사용하여 CSV 파일에 NumPy 배열 저장
  2. numpy.savetxt()함수를 사용하여 CSV 파일에 NumPy 배열 저장
  3. tofile()함수를 사용하여 CSV 파일에 NumPy 배열 저장
  4. 파일 처리 방법을 사용하여 CSV 파일에 NumPy 배열 저장
파이썬에서 CSV에 NumPy 배열 쓰기

이 튜토리얼에서는 CSV 파일에 numpy 배열을 저장하는 방법에 대해 설명합니다.

pandas DataFrame을 사용하여 CSV 파일에 NumPy 배열 저장

이 방법에서는 먼저 배열을pandas DataFrame에 저장 한 다음이 DataFrame을 CSV 파일로 변환합니다.

다음 코드는이를 달성하는 방법을 보여줍니다.

import pandas as pd
import numpy as np

a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
pd.DataFrame(a).to_csv("sample.csv")

pd.DataFrame함수는 배열을 DataFrame에 저장하고to_csv()함수를 사용하여 CSV 파일로 내보내기 만하면됩니다.

numpy.savetxt()함수를 사용하여 CSV 파일에 NumPy 배열 저장

numpy 모듈의savetxt()함수는 배열을 텍스트 파일에 저장할 수 있습니다. 원하는 형식으로 최종 결과를 얻기 위해 파일 형식, 구분 문자 및 기타 여러 인수를 지정할 수 있습니다.

다음 코드에서는이 함수를 사용하여 CSV 파일에 배열을 저장합니다.

import numpy as np

a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

np.savetxt("sample.csv", a, delimiter=",")

tofile()함수를 사용하여 CSV 파일에 NumPy 배열 저장

tofile()함수를 사용하면 텍스트 또는 이진 파일에 배열을 쓸 수 있습니다. 그러나이 방법에는 많은 단점이 있습니다. 어레이 데이터의 빠른 저장을위한 편의 기능에 가깝습니다. 모든 정보를 한 줄에 저장하므로 정보의 정확성이 손실되므로이 방법은 데이터를 보관하려는 파일에 적합하지 않습니다. 이러한 문제 중 일부는 속도와 파일 크기를 희생하면서 데이터를 텍스트 파일로 출력하여 극복 할 수 있습니다.

다음 코드는이 함수의 사용을 보여줍니다.

import numpy as np

a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

a.tofile("sample.csv", sep=",")

파일 처리 방법을 사용하여 CSV 파일에 NumPy 배열 저장

전통적인 파일 처리 방법을 사용할 수 있지만 이러한 방법은 배열의 모양에 따라 많은 수정이 필요하고 많은 메모리를 소비 할 수 있으므로 사용하지 않는 것이 좋습니다.

다음 코드는이 메서드의 예를 보여줍니다.

a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
csv_rows = ["{},{},{}".format(i, j, k) for i, j, k in a]
csv_text = "\n".join(csv_rows)

with open("sample.csv", "w") as f:
    f.write(csv_text)

배열을 행 목록으로 압축을 푼 다음join()함수를 사용하여이 목록을 결합하여 단일 문자열을 반환합니다. 그런 다음이 문자열을 CSV 파일에 씁니다.

작가: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

관련 문장 - NumPy Array