python:HDF 와 CSV 저장 우열 비교 분석

4283 단어 pythonHDFCSV기억
작은 데이터 용 csv,빅 데이터 용 h5
결론 1:수백 KB 이상 의 데 이 터 는 모두 h5 를 사용 하 는 것 이 좋다.
결론 2:몇 KB 의 데이터 h5 는 오히려 느리다
순서

import pandas as pd
import numpy as np
from wja.wja_tool import test_time as tt
from wja import wja_tool as tool

df = tool.generate_sampleDF(row, col)

tt().run()
df.to_csv('try.csv')
tt().end()

tt().run()
df.to_hdf('try.h5','df',mode='w')
tt().end() 

tt().run()
df1 = pd.read_csv('try.csv')
tt().end()

tt().run()
df2 = pd.read_hdf('try.h5')
tt().end()
대비 1:데이터 10*1
df = tool.generate_sampleDF(10,1)

# csv  
# hdf  
# csv  
# hdf  
    :0.015
    :0.9985
    :0.009
    :0.0369
대비 2:데이터 100*10
df = tool.generate_sampleDF(100,10)

# csv  
# hdf  
# csv  
# hdf  
    :0.017
    :1.1016
    :0.01
    :0.013
대비 3:데이터 1000*100
df = tool.generate_sampleDF(1000,100)

# csv  
# hdf  
# csv  
# hdf  
    :0.2383
    :1.0308
    :0.0499
    :0.016
대비 4:데이터 10000*100
df = tool.generate_sampleDF(10000,100)

# csv  
# hdf  
# csv  
# hdf  
    :2.0895
    :1.0073
    :0.4055
    :0.0169
대비 5:데이터 10000*1000

# csv  
# hdf  
# csv  
# hdf  
df = tool.generate_sampleDF(10000,1000)

# csv  
# hdf  
# csv  
# hdf  
    :23.5693
    :2.2057
    :3.3697
    :0.0619
python:n 개 점 m 변 유 권 무 방향 도
위치
m 변:두 점 사이 에 m 변 의 가중치 가 존재 합 니 다.
권한:각 변 은 하나의 수 치 를 대표 합 니 다.
무 방향:행진 방향 을 정 하지 않 았 습 니 다.
규정:
1.두 점 사이 의 행진 노선 은 최종 가중치 가 지나 간 변 의 가중치 의 최대 치 이다.
2.두 점 사이 의 주 행 법 은 한 가지 가 아니 라 최종 적 으로 최소 치 를 최종 주 행 법 으로 한다.
물음:
두 점 사이 의 최종 가중치 가 얼마 입 니까?

위의 그림 과 같이 우 리 는 이 를 목록 형식 으로 쓸 수 있다.앞의 두 자 리 는 어 릴 때 부터 큰 두 점,마지막 대표 권 치 이다.예 를 들 어
[1,2,2]1 과 2 를 대표 하 는 가중치 는 2 로 유추 된다.

n,m = 5, 10
road = [[1, 2, 2], [1, 3, 3], [1, 4, 7], [1, 5, 2],
    [2, 3, 4], [2, 4, 9], [2, 5, 5], [3, 4, 4],
    [3, 5, 5], [4, 5, 3]]

def hold(list1, list2):
  jiaoji = list(set(list1)&set(list2))
  need = [i for i in set(list1+list2) if i not in jiaoji]
  need.sort()
  return need

def get(road):
  option = {}
  for i in range (m):
    option[(road[i][0],road[i][1])] = [road[i][2]]
  for i in range (m):
    for j in range(i+1,m):
      dot = hold(road[i][:2], road[j][:2])
      if len(dot)==2:
        if (dot[0],dot[1]) in option.keys():
          option[(dot[0],dot[1])].append(max([road[i][2],road[j][2]]))
        else:
          option[(dot[0],dot[1])] = []
          option[(dot[0],dot[1])].append(max([road[i][2],road[j][2]]))
  road_new = []
  for i in option.items():
    road_new.append(list(i[0])+[min(i[1])])
  if road==road_new:
    print(road_new)
    return road_new
  return get(road_new)
출력 결과
모든 가능 한 방법 은 다음 과 같 으 며,마지막 출력 에서 가장 짧 은 값 경 로 를 사용 합 니 다.
예 를 들 어[2,3,3]:2 에서 3 까지 가 는 가장 짧 은 가중치 경 로 는 3 이 고 해당 경 로 는 그림 에서 2-1-3 까지 갈 수 있다.
예 를 들 어[3,5,3]:3 에서 5 로 가 는 가장 짧 은 가중치 경 로 는 3 이 고 해당 경 로 는 그림 에서 3-1-5 까지 이다.
[[1, 2, 2], [1, 3, 3], [1, 4, 3], [1, 5, 2], [2, 3, 3],
[2, 4, 3], [2, 5, 2], [3, 4, 3], [3, 5, 3], [4, 5, 3]]
이상 의 python:HDF 와 CSV 저장 의 우열 비교 분석 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기