python 读取libsvm文件
以下三种方式
# -*- coding:utf-8 -*-
import numpy as np
import os
from sklearn import datasets def data_generator(input_filename, batch_size):
"""
:param input_filename:
:param batch_size:
:return:
"""
feature_size = 3
labels = np.zeros(batch_size)
rets = np.empty(shape=[batch_size, feature_size])
i = 0
for line in open(input_filename, "r"):
data = line.split(" ")
label = int(float(data[0]))
ids = []
values = []
for fea in data[1:]:
id, value = fea.split(":")
if int(id) > feature_size - 1:
break
ids.append(int(id))
values.append(float(value))
ret = np.zeros([1, feature_size])
for (index, d) in zip(ids, values):
ret[0][index] = d
labels[i] = int(label)
rets[i] = ret
i += 1
if i > batch_size - 1:
i = 0
yield labels, rets[0:, 0:3] def get_data(input_filename, batch_size):
oneline = 16294 # 一行多少个字节
feature_size = 1947
batch = 0
while True:
data = datasets.load_svmlight_file(input_filename, offset=oneline * batch_size * batch,
length=oneline * batch_size,
n_features=feature_size)
features = data[0]
labels = data[1]
if features.shape[0] > 0: # 保证返回和数据的有效性
batch += 1
yield labels, features[0:, 0:3]
else:
raise StopIteration def get_data_all(input_filename, batch_size):
data = datasets.load_svmlight_file(input_filename)
features = data[0]
labels = data[1]
batch = 0
while True:
start_index = batch * batch_size
end_index = (batch + 1) * batch_size if features.shape[0] > end_index:
yield labels[start_index:end_index], features[start_index:end_index, 0:3]
batch += 1
else:
raise StopIteration if __name__ == "__main__":
print("====", os.getcwd())
filename = "/home/part-00000"
generator = data_generator(filename, 10)
labels, features = generator.next()
print([labels])
print(features) generator = get_data_all(filename, 1000)
while True:
labels, features = generator.next()
print 'data', len(labels), features.shape
对于需要循环多次调用方法的,可以使用缓存,需要注意的是,缓存不能直接加在yiled函数上
# -*- coding:utf-8 -*-
import numpy as np
from sklearn.externals.joblib import Memory
import os
import random
from sklearn import datasets mem = Memory("/tmp/mycache") def get_data_batch(input_filename, batch_size):
data = get_data(input_filename)
features = data[0]
labels = data[1]
batch = 0
while True:
start_index = batch * batch_size
end_index = (batch + 1) * batch_size if features.shape[0] > end_index:
yield labels[start_index:end_index], features[start_index:end_index]
batch += 1
else:
raise StopIteration @mem.cache
def get_data(input_filename):
return datasets.load_svmlight_file(input_filename)
python 读取libsvm文件的更多相关文章
- Python读取txt文件
Python读取txt文件,有两种方式: (1)逐行读取 data=open("data.txt") line=data.readline() while line: print ...
- Python读取Yaml文件
近期看到好多使用Yaml文件做为配置文件或者数据文件的工程,随即也研究了下,发现Yaml有几个优点:可读性好.和脚本语言的交互性好(确实非常好).使用实现语言的数据类型.有一个一致的数据模型.易于实现 ...
- python读取中文文件编码问题
python 读取中文文件后,作为参数使用,经常会遇到乱码或者报错asii错误等. 我们需要对中文进行decode('gbk') 如我有一个data.txt文件有如下内容: 百度 谷歌 现在想读取文件 ...
- Python读取SQLite文件数据
近日在做项目时,意外听说有一种SQLite的数据库,相比自己之前使用的SQL Service甚是轻便,在对数据完整性.并发性要求不高的场景下可以尝试! 1.SQLite简介: SQLite是一个进程内 ...
- Python读取xlsx文件
Python读取xlsx文件 脚本如下: from openpyxl import load_workbook workbook = load_workbook(u'/tmp/test.xlsx') ...
- Python 读取WAV文件并绘制波形图
aa Python 读取WAV文件并绘制波形图 ffmpeg -i test_pcm_mulaw.wav -f wav -codec:a pcm_s16le -ar 8000 -ac 1 out.wa ...
- 使用python读取yaml文件
在做APP测试时,通常需要把参数存到一个字典变量中,这时可以将参数写入yaml文件中,再读取出来. 新建yaml文件(android_caps.yaml),文件内容为: platformName: A ...
- python 读取bin文件
python读取bin文件并下发串口 # coding:utf-8import time, serialfrom struct import *import binascii file = ope ...
- 记录:python读取excel文件
由于最近老是用到python读取excel文件,所以特意记录一下python读取excel文件的大体框架. 库:xlrd(读),直接pip安装即可.想要写excel文件的话,安装xlwd库即可,也是直 ...
随机推荐
- 如何结合IbatisNet的LIST遍历实现模糊查询
我仿照Java的Spring+Ibatis+Struct用Castle+IBatisNet+Asp.net的开发框架的DAO的基类:BaseSqlMapDao内定义了一个内部类来辅助模糊查询.内部类代 ...
- 【BZOJ2962】序列操作 线段树
[BZOJ2962]序列操作 Description 有一个长度为n的序列,有三个操作1.I a b c表示将[a,b]这一段区间的元素集体增加c,2.R a b表示将[a,b]区间内所有元素变成相反 ...
- python相关的报错处理
1.python3.6编译安装完毕后,使用pip3安装virtualenv,提示找不到ssl模块 原因:因为我们少装了openssl-devel依赖包,所以导致编译后的pip3无法找到ssl模块. 解 ...
- 洛谷 P2467 [SDOI2010]地精部落
洛谷 我讲的应该没有这个[https://www.luogu.org/blog/user55639/solution-p2467]清楚. 贴个代码算了: #include <bits/stdc+ ...
- Vue(6)- Vue-router进阶、单页面应用(SPA)带来的问题
一.Vue-router进阶 回顾学过的vue-router,并参考官方文档学习嵌套路由等路由相关知识. 二.单页面应用(SPA)带来的问题 1.虽然单页面应用有优点,但是,如果后端不做服务器渲染(h ...
- 判断json格式中是否含有key
1.obj["key"] != undefined 这种有缺陷,如果这个key定义了,并且就是很2的赋值为undefined,那么这句就会出问题了. 2.if("key& ...
- zookeeper3.4.5集群安装
机器配置: 机器 Hostname user 192.168.169.139 node139 hadoop 192.168.169.140 node140 hadoop 192.168.169.141 ...
- PageObjects 设计模式
什么是Page Objects(翻译为:页面对象?)… 简单的说,Page Objects是指UI界面上用于与用户进行交互的对象.它可以指整个页面,也可以指Page上的某个区域.Page Object ...
- 关于python中的查询数据库内容中用到的fetchone()函数和fetchall()函数(转)还有fetchmany()
最近在用python操作mysql数据库时,碰到了下面这两个函数,标记一下: fetchone() : 返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None fetchall() ...
- NIO服务端和客户端通信demo
代码转自 https://www.jianshu.com/p/a9d030fec081 服务端: package nio; import java.io.IOException; import jav ...