python将矩阵存为lmdb文件
由于工作需要,将C++生成的矩阵存入LMDB再用caffe进行处理,输出的矩阵失去了它原本的shape,因此只能记录下来:
矩阵X(n*ell):
-372302407
1319544887
-223830618
-184109131
-328009648
-182855917
…
749988319
-1387505086
-1967883425
1022949309
1680638116
1541327498
矩阵Y(r*n):
1
0
0
0
11
-34
-280
109
151
-205
-105
…
156
-152
-151
27
199
-202
-125
-95
# 向lmdb数据库存入两个矩阵X和y,大小分别为n*ell、r*nimport numpy as np
import lmdb# X:r*n
# Y:n*ellr = 4
n = 32
ell = 30X_path = './X.txt'
Y_path = './Y.txt'def write_lmdb(filename):print('Write lmdb')lmdb_env = lmdb.open(filename, map_size=int(1e9))n_samples= 1# 读入Xwith open(X_path, 'r') as f:# 读取图像文件的二进制格式数据X_temp = f.read()X_temp = X_temp.split('\n')del (X_temp[-1])X = [int(i) for i in X_temp]X = np.array(X).astype(np.int64)# print(X)# 读入Ywith open(Y_path, 'r') as f:# 读取图像文件的二进制格式数据Y_temp = f.read()Y_temp = Y_temp.split('\n')del (Y_temp[-1])y = [int(i) for i in Y_temp]y = np.array(y).astype(np.int64)# print(y)# 写入LMDBfor i in range(n_samples):with lmdb_env.begin(write=True) as lmdb_txn:lmdb_txn.put(str('X_'+str(i)).encode(), X)lmdb_txn.put(str('y_'+str(i)).encode(), y)print('X:',X)print('y:',y)def read_lmdb(filename):print('Read lmdb')lmdb_env = lmdb.open(filename)lmdb_txn = lmdb_env.begin()lmdb_cursor = lmdb_txn.cursor()n_samples=1read_array = []with lmdb_env.begin() as lmdb_txn:with lmdb_txn.cursor() as lmdb_cursor:for key, value in lmdb_cursor:if('X'.encode() in key):read_temp = np.frombuffer(value, dtype=np.int64)read_array.append(read_temp)if('y'.encode() in key):read_temp = np.frombuffer(value, dtype=np.int64)read_array.append(read_temp)n_samples = n_samples + 1x_read_temp = read_array[0]x_read = []x_read_line = []print("X: ")for i in range(x_read_temp.size):x_read_line.append(x_read_temp[i])if len(x_read_line) == (n+r)*ell: # 列数x_read.append(x_read_line.copy())x_read_line.clear()print(x_read)y_read_temp = read_array[1]y_read = []y_read_line = []print("Y: ")for i in range(y_read_temp.size):y_read_line.append(y_read_temp[i])if len(y_read_line) == n+r: # 列数y_read.append(y_read_line.copy())y_read_line.clear()print(y_read)print('n_samples',n_samples)write_lmdb('temp.db')
read_lmdb('temp.db')
输出如下:
Write lmdb
X: [-372302407 1319544887 -223830618 ... 1998175905 -616375716 -132621858]
y: [ 1 0 0 0 11 -34 -280 109 151 -205 -105 3 156 -152-151 27 199 -202 -125 -95 318 -88 -173 273 262 -127 -152 -322-18 198 110 65 14 -310 192 103 0 1 0 0 -215 -2170 -65 -123 -110 171 39 -78 -21 24 -61 23 -44 113 184169 -240 -157 -16 136 182 -331 156 26 112 -188 -175 244 -19530 -228 0 0 1 0 -55 -15 -62 -41 -24 -140 -94 198-130 -4 -33 -206 256 -230 -406 -170 84 -45 -283 -136 38 -3964 -84 85 -85 41 -241 -42 -107 -19 -135 0 0 0 1124 5 -235 -121 49 -115 242 -61 -353 106 353 -210 -194 219-228 183 -80 110 218 -243 10 -190 -338 -75 11 -177 31 -208176 -66 97 -134]
Read lmdb(由于数据太长,省略了后面的)
X:
[[-372302407, 1319544887, -223830618, -184109131, ...], ...]
Y:
[[1, 0, 0, 0, 11, -34, -280, 109, 151, -205, ...], ...]
python将矩阵存为lmdb文件相关推荐
- python读取.mat文件,python将变量存为.mat文件详细介绍
在进行数据处理的过程中,经常会用到Matlab和python两种工具,.mat文件是Matlab数据存储的标准数据格式,通过创建一个.mat文件详细介绍两种工具之间的数据读取和存储. 一.python ...
- Python将list存为csv文件
#!/usr/bin/env python # -*- encoding: utf-8 -*-import sys import json import os import pandas as pd& ...
- python把矩阵存为文件_python 读取文件并把矩阵转成numpy的两种方法
在当前目录下: 方法1: file = open('filename') a =file.read() b =a.split('\n')#使用换行 len(b) #统计有多少行 for i in ra ...
- Python 将矩阵保存为excel文件
import xlwt # 负责写excel import xlrd filename =xlwt.Workbook() #创建工作簿 sheet1 = filename.add_sheet(u'sh ...
- Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵)
Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵) 本博客转载自:https://blog.csdn.net/vernice/article/details/50 ...
- mysql讀取sql_MySQL数据库之python json及mysql读取json文件存sql等问题
本文主要向大家介绍了MySQL数据库之python json及mysql读取json文件存sql等问题 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. preface: 近期帮师 ...
- Python爬取的数据存为json文件,并读取
Python爬取的数据存为json文件,并读取 import requests import time from lxml import etree import jsondef json_data_ ...
- 使用Python批量实现某一Excel文件中每3行数据存一个Excel文件
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 远芳侵古道,晴翠接荒城. 大家好, ...
- 基于Python的DICOM文件转换教程,使用pydicom将图片存为DICOM文件。
基于Python的DICOM文件转换教程,使用pydicom将图片存为DICOM文件. DICOM是医学图像和信息的数字化标准,可用于将医学影像数据.诊断报告等信息在医疗领域进行传输.分享和分析.而常 ...
最新文章
- 使用现代C++如何避免bugs(下)
- Android 趣味应用—— 短信编辑器
- CentOS用yum安装X Window
- oc引导win方法_[OC更新]机械革命10代标压稳定版更新
- linux下织梦cms安装环境配置文件,Mac本地环境配置以及安装织梦CMS,增加新的坑解决办法...
- 利用最大熵进行阈值分割从而实现灰度图像的二值化的原理概要及OpenCV代码
- UVa 537 - Artificial Intelligence?
- Table表格的单元格提示
- Direct3D提高篇:HLSL编程实现PhotoShop滤镜效果(1)
- python(numpy,pandas1)——numpy(ndim,shape,size,zero, empty, arange, linspace)
- mysql合并表中的数据
- android获取QQ昵称,【Ctrl.js】QQ读取好友昵称和QQ号源码
- NET流行高性能JSON框架-Json.NET
- 使用 Segue 傳送選取的 Table Cell 內容到下一個 View
- uniapp/vue 组件之间的传值
- c语言16qam,基于FPGA的高阶QAM调制器的实现
- python3GUI--你喜欢的无损音乐下载工具(附源码)
- 我的去 Google 化的安卓之旅
- Playing Atari with Deep Reinforcement Learning-笔记
- 2018互联网大会,科幻大片照进现实!
热门文章
- VMware 快照系统
- 地下水分析测试项目与方法(无机部分)
- 在Puppy Linux中安装Firefox
- python的messagebox的用法_Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解...
- 全球及中国可穿戴科技设备行业前景动态及投资趋势预测报告2022-2027年
- pythonwin10下使用定时任务执行爬虫程序
- 使用CruiseControl搭建自己的持续集成环境
- web页面设计的几个案例
- FP6291芯片输出电压12V,DC-DC升压芯片
- Golang - 开篇必须吹牛逼