处理大型数据集,就好像它是一个迭代的。

lazy-dataset的Python项目详细描述


懒数据集

Build StatusLicense: MIT

lazy_dataset是处理不适合内存的大型数据集的助手。 它允许定义延迟应用的转换, (例如,从硬盘读取数据的映射函数)。当有人遍历数据集时 应用转换。

支持的转换:

  • dataset.map(map_fn):将函数map_fn应用于每个示例(builtins.map
  • dataset[2]:在索引2处获取示例。
  • dataset['example_id']获取具有示例ID的示例'example_id'
  • dataset[10:20]:获取一个子数据集,该子数据集只包含切片10到20中的示例。
  • dataset.filter(filter_fn, lazy=True)删除filter_fn(example)为false(builtins.filter)的示例。
  • dataset.concatenate(*others):连接两个或多个数据集(numpy.concatenate
  • dataset.shuffle(reshuffle=False):洗牌数据集。当reshuffleTrue时,每次在数据上迭代时,它都会洗牌。
  • dataset.tile(reps, shuffle=False):重复数据集reps次并连接它(numpy.tile
  • dataset.groupby(group_fn):将示例分组在一起。与itertools.groupby相反,排序是不存在的,就像熊猫(itertools.groupbypandas.DataFrame.groupby
  • dataset.sort(key_fn, sort_fn=sorted):根据值对示例进行排序key_fn(example)list.sort
  • dataset.batch(batch_size, drop_last=False):将批次batch_size示例作为列表一起列出。通常后跟一个映射(tensorflow.data.Dataset.batch
  • dataset.random_choice():获取一个随机示例(numpy.random.choice
>>>fromIPython.lib.prettyimportpprint>>>importlazy_dataset>>>examples={...'example_id_1':{...'observation':[1,2,3],...'label':1,...},...'example_id_2':{...'observation':[4,5,6],...'label':2,...},...'example_id_3':{...'observation':[7,8,9],...'label':3,...},...}>>>forexample_id,exampleinexamples.items():...example['example_id']=example_id>>>ds=lazy_dataset.new(examples)>>>dsDictDataset(len=3)MapDataset(_pickle.loads)>>>ds.keys()('example_id_1','example_id_2','example_id_3')>>>forexampleinds:...print(example){'observation':[1,2,3],'label':1,'example_id':'example_id_1'}{'observation':[4,5,6],'label':2,'example_id':'example_id_2'}{'observation':[7,8,9],'label':3,'example_id':'example_id_3'}>>>deftransform(example):...example['label']*=10...returnexample>>>ds=ds.map(transform)>>>forexampleinds:...print(example){'observation':[1,2,3],'label':10,'example_id':'example_id_1'}{'observation':[4,5,6],'label':20,'example_id':'example_id_2'}{'observation':[7,8,9],'label':30,'example_id':'example_id_3'}>>>ds=ds.filter(lambdaexample:example['label']>15)>>>forexampleinds:...print(example){'observation':[4,5,6],'label':20,'example_id':'example_id_2'}{'observation':[7,8,9],'label':30,'example_id':'example_id_3'}>>>ds['example_id_2']{'observation':[4,5,6],'label':20,'example_id':'example_id_2'}>>>dsDictDataset(len=3)MapDataset(_pickle.loads)MapDataset(<functiontransformat0x7ff74efb6620>)FilterDataset(<function<lambda>at0x7ff74efb67b8>)

安装

如果您只想使用pip,请直接安装:

pip install lazy_dataset

如果要进行更改或需要最新版本:请克隆存储库并按如下方式安装:

git clone https://github.com/fgnt/lazy_dataset.git
cd lazy_dataset
pip install --editable .

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java OnResizeListener或OnDrawListener或类似的东西   java Orika映射嵌套子列表   保存时java Heroku请求超时代码H12   数据库在Java中出现socket读取超时异常的原因是什么?   java如何更改来自Sqlite数据库的特定数据在Listview中的行颜色   java JAXB解组器无法正确处理XML中的列表   java Android日期时区让我抓狂   java不透明属性在Swing中如何工作?   eclipse从JavaEE代码生成流程图   java如何在Hibernate中从相关表中获取计数   java Glassfish部署了项目的依赖项库   java使内容适合JavaFx中的WebView   java不满意的链接错误libcrypto。所以1.0.0   循环中java数组的使用   java找出哪个包调用服务