본문 바로가기
프로그래밍 ( Programming )/Python

[Python] Pickle 파일의 Dictionary에서 값 추출하는 방법

by Jayce_choi 2021. 12. 13.
반응형

data_test.pkl
0.00MB

예를 들어서 우리가 다루는 피클 파일의 데이터를 출력하였을 때 해당 결과가 이렇게 나온다고 가정해봅시다.

파일은 위에 첨부해 두었기에 따라서 진행을 해보셔도 좋습니다. 

간단하게 표현하면 아래와 같은 dictionary 안에 3개의 값이 들어있는 형태가 여러 개로 이어진 형태입니다. 

{'x1': array([4.9275775], dtype=float32), 'x2': array([-1.2006631], dtype=float32), 'rosenbrock': 64947.04304570523}  


목표는 다음 형태에서 값만 추출하고 배열로 만드는 것입니다.

그러기 위해서는 우선 pickle 파일을 불러오는 코드와 딕셔너리 내부에 Value값들을 불러오는 코드가 필요합니다. 

import numpy as np
import pickle

with open("data_test.pkl","rb") as fr:
    data = pickle.load(fr)

data = np.array(data)
real_data = []

for i in range(data.size):
    temp = np.array([])
    temp = np.append(temp,data[i]['x1'])
    temp = np.append(temp,data[i]['x2'])
    temp = np.append(temp,data[i]['rosenbrock'])
    real_data = np.append(real_data,temp)

print(real_data.size)
print(real_data.reshape(int(real_data.size/3),3))

작성은 다음과 같이 했으며 결과는 아래와 같이 출력 됩니다. 

 

*추가적으로 도움되는 사이트 

 

Extract the data array([[array([[ 399.6097561]])]], dtype=object)

I have the data like this, how can I extract the value 399.6097561 from it? array([[array([[ 399.6097561]])]], dtype=object)

stackoverflow.com

 

반응형

댓글