우선 터널에다가 " openpyxl " 를 깔아줘야 한다.

- pip install openpyxl

그 이후에 파이썬 코드 "to_excel"을 사용하면 된다.

그전에 list 를 DataFrame 으로 변경해주거야 한다!

import pandas as pd
import numpy as np

df = pd.DataFrame.from_records(rent_id)
df.to_excel('test.xlsx')

 이렇게하면 저장이 가능하다.

'drive_time': 40008.0, 'geo_data': [{'velocity': '0.7'}, {'velocity': '0.6'}, {'velocity': '0.0'}, {'velocity': '0.0'}, {'velocity': '0.0'}, {'velocity': '2.2'}, {'velocity': '4.2'}, {'velocity': '1.8'}, {'velocity': '9.0'}, {'velocity': '5.6'}, {'velocity': '3.9'}, {'velocity': '6.5'}, {'velocity': '10.5'}, {'velocity': '10.2'}, {'velocity': '6.6'}, {'velocity': '1.6'}, {'velocity': '2.7'}, {'velocity': '6.3'}], 'rent_id': 229}

이런 형태의 배열로 되어있음

{}, [] 형태로 {} 되어있으면 .key, .items 로 for문을 돌려서 값을 읽어올수 있으나

둘이 겹쳐져 있는 json 타입의 형태는 entry 로 해서 그 값들을 가지고 활용해야 함

import json
from pprint import pprint

with open('20190801.json', encoding='utf-8') as data_file:    
    data = json.load(data_file)

pprint(data[50])

print(data[0]['rent_id'])
print(data[0]['drive_time'])
float(data[0]['geo_data'][26]['velocity'])

rent_id=[]

for entry in data :
    line=[]
    for key in entry['geo_data'] :
        line.append(float(key['velocity']))
    rent_id.append(line)

print(rent_id)

import matplotlib.pyplot as plt

plt.plot(rent_id[0])
plt.show()

 

이후에는 이 읽은 데이터를 다시 파일로 변환해서 저장하고

그걸로 이미지를 합쳐서 그릴 수 있어야함

지식 없어 처음 여러 단어를 접하다 보면 .... 알아듣지 못하는 영어가 막 나온다

(실생활에서는 1도 안쓰지만, 이곳에서는 그 단어를 모르면 대화가 안되는 그런 느낌?)

그래서 나에게 도움이 되고자 하나하나 정리하기 시작했다


 

1. Back propagation (오차역전파법)

  머신러닝을 한번 돌고 다시 원점으로 되돌아 오는 것이 가능하다 라는 뜻이다.

  쉽게 생각하면 왔다리 갔다리 A에서 B점으로 왔다갔다가 가능하다는 것

  그게 되어야 머신러닝에서 필요한 값들을 계산할 수 있기 때문이다.

연관용어 : feed forward (전방전달)

 

골빈해커의 3분 딥러닝에서 공부한 내용입니다.

#비지도학습 Autoencoder
#텐서플로, numpy, matplotlib의 라이브러리 임포트
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

#MNIST 모듈 임포트
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

#########
#옵셥설정#
#########

learning_rate = 0.01 #최적화 함수에서 사용할 학습률
training_epoch = 20  #전체 데이터를 학습할 총 횟수
batch_size = 100     #미니배치로 한번에 학습할 데이터(이미지)의 갯수
n_hidden = 256       #은닉층의 뉴런 개수
n_input = 28*28      #이미지 크기 28*28 = 784

#########
#모델구성#
#########

X = tf.placeholder(tf.float32, [None, n_input])

#인코더
W_encode = tf.Variable(tf.random_normal([n_input, n_hidden]))  #n_hidden개의 뉴런을 가진 은닉층 만듬
b_encode = tf.Variable(tf.random_normal([n_hidden])) 
encoder = tf.nn.sigmoid(tf.add(tf.matmul(X,W_encode),b_encode)) #sigmoid 활성화 함수 적용

#디코더 (n_input과 n_hidden을 인코더와 반대로 입력)
W_decode = tf.Variable(tf.random_normal([n_hidden, n_input]))
b_decode = tf.Variable(tf.random_normal([n_input]))
decoder = tf.nn.sigmoid(tf.add(tf.matmul(encoder,W_decode),b_decode))

#########
#모델학습#
#########

#손실함수(두 값의 거리차이) = X(평가하기 위한 실측값) - 디코더의 결과값
cost = tf.reduce_mean(tf.pow(X-decoder,2))

#최적화 함수
optimizer = tf.train.RMSPropOptimizer(learning_rate).minimize(cost)

#학습진행
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)

total_batch = int(mnist.train.num_examples / batch_size)

for epoch in range(training_epoch):
    total_cost = 0
    
    for i in range(total_batch):
        batch_xs, batch_ys = mnist.train.next_batch(batch_size)
        _, cost_val = sess.run([optimizer, cost], feed_dict={X:batch_xs})
        total_cost += cost_val
        
    print('Epoct:', '%04d' % (epoch + 1), 'Avg. cost = ', '{:.4f}'.format(total_cost/total_batch))

print('최적화 완료!')


#########
#결과확인#
#########

#10개의 확인 이미지 추출
sample_size = 10
samples = sess.run(decoder, feed_dict={X:mnist.test.images[:sample_size]})

fig, ax = plt.subplots(2, sample_size, figsize=(sample_size, 2))

for i in range(sample_size):
    ax[0][i].set_axis_off()
    ax[1][i].set_axis_off()
    ax[0][i].imshow(np.reshape(mnist.test.images[i], (28,28))) #imshow : 이미지 출력함수
    ax[1][i].imshow(np.reshape(samples[i], (28,28)))

plt.show()

 

tsv 파일이란,

csv파일과 비슷하지만 ,(쉼표)가 아닌 탭으로 뛰어진 파일이다.

쉼표를 사용해야만하는 데이터가 있으면 탭으로 뛰어서 보내는 것도 방법이기에!

아래와 같이 한다면 열수있음!

import pandas as pd
dataset = pd.read_csv("파일이름.tsv",delimiter='\t')
print(dataset)

 

+ Recent posts