IOPro ¶
IOPro 直接从文件、SQL 数据库和 NoSQL 存储(包括具有数百万行的存储)加载 NumPy 数组(和 Pandas 数据帧),而无需创建数百万个临时的、中间 Python 对象,也不需要昂贵的数组大小调整操作。
IOPro 为 NumPy 函数loadtxt()
和提供了替代品genfromtxt()
,但显着提高了性能并减少了内存开销。
IOPro 1.9.1 的当前(和最终)版本于 2017 年 3 月 1 日发布。
IOPro 的开源继承者¶
IOPro 中的所有代码均于 2017 年在 BSD 开源许可下发布。作为该版本的一部分,代码被重构为多个组件库,每个组件库的版本号都设置为 2.0.0,以表明它们取代了 IOPro 名称下的代码。
GitHub 上提供了几个库:
- TextAdapter(CSV、JSON 等)
- DBAdapter(SQL 衍生品)
- PostgresAdapter (PostgreSQL)
- AccumuloAdapter (Apache Accumulo)
- MongoAdapter (MongoDB)
这些不同的包可以作为 conda 包(使用其名称的小写版本)在 conda-forge 频道中提供。维护、改进和打包将是一个社区主导的项目。
如何获得 IOPro ¶
要获得 IOPro,只需下载并安装 IOPro 包。
如果您已经安装了Anaconda(免费 Python 平台)或Miniconda :
conda update conda
conda install -c pkgs/pro iopro=1.9.1
如果你没有安装 Anaconda,你可以下载它。
1.9 版有什么新功能?¶
文档已针对 1.9.0 版进行了大量更新。Numba 已被删除,代码已被清理,但没有添加或删除其他功能。进行了一些没有改变功能的重构。我们建议用户不要使用旧版本。有关更多详细信息,请参阅发行说明。
入门¶
一些基本的使用模式如下所示。为数据源创建 TextAdapter 对象:
>>> import iopro
>>> adapter = iopro.text_adapter('data.csv', parser='csv')
定义字段数据类型(例如:将字段 0 设置为 unsigned int,将字段 4 设置为浮点数):
>>> adapter.set_field_types({0: 'u4', 4:'f4'})
使用切片符号解析文本并将记录存储在 NumPy 数组中:
>>> # read all records
>>> array = adapter[:]
>>> # read first ten records
>>> array = adapter[0:10]
>>> # read last record
>>> array = adapter[-1]
>>> # read every other record
>>> array = adapter[::2]