Sol*_*vis 2 python mysql sql database pandas
我目前在我的大学的神经科学研究实验室担任本科生实习生,在那里我是专门的“编码员/数学专家”。我知道这个描述很尴尬,但我认为这就是我的看法。
我有很多任务,包括更新遗留代码,这让我退后一步,尝试概念化执行此操作的最佳方法。我正在寻求有关构建流程的最佳方式的建议。
目前收集的数据有两种形式。一种是来自基于 3D 的捕获设备,该设备收集不同标记上的数据,尤其是它们的 xyz 位置,它可以将这些数据导出为 CSV 格式。然而,还有一个用 C 编写的奇怪的旧 API,我可以用它来手动获取数据。还有一个眼动仪以专有的二进制格式存储数据,并提供 MEX 文件以在 Matlab 中提取相关信息,但是编译后的 MEX 文件似乎完全是黑盒的。
我正在考虑尝试将所有数据存储在关系数据库中,并使用 python 插件来获取某些数据帧中所需的数据和结构以进行分析。我们谈论的是用于 3D 动作捕捉的 64floating 的大约 100,000 * 10。
是否值得研究 SQL 和 NOSQL 架构,还是应该将所有内容存储在结构化目录中的 HDF5 或 JSON 中?
我问自己同样的问题,我会尝试恢复我所发现的东西。
\n\n鉴于这与您的数据集类似:
\n\n<class \'pandas.core.frame.DataFrame\'>\nInt64Index: 100000 entries, 0 to 99999\nData columns (total 10 columns):\n0 100000 non-null float64\n1 100000 non-null float64\n2 100000 non-null float64\n3 100000 non-null float64\n4 100000 non-null float64\n5 100000 non-null float64\n6 100000 non-null float64\n7 100000 non-null float64\n8 100000 non-null float64\n9 100000 non-null float64\ndtypes: float64(10)\nmemory usage: 8.4 MB\nRun Code Online (Sandbox Code Playgroud)\n\n您的“基本”数据集将需要 \xe2\x89\x88 10 MB
\n\n\n\n\n因此,HDF5 是一种罕见的产品,它在两个领域表现出色:根据严格的标准化惯例归档和共享数据,以及用于本地数据分析的临时、高度灵活和迭代的使用。
\n
https://hdfgroup.org/wp/2015/03/hdf5-as-a-zero-configuration-ad-hoc-scientific-database-for-python/
\n\n一般来说,与字符串相比,HDF5 使用 int 效果更好,看来这就是你的情况。也许它的主要限制是并发性:
\n\n\n\n\n更值得关注的是邮件列表上最近发布的帖子,讨论\n 在具有数千个使用并行 I/O 的处理器的高性能计算应用程序中使用 netCDF 和 HDF5,其中警告\n 并行 I/O 期间存在文件损坏的危险如果客户端在特定时间死亡。HDF Group 已意识到此问题并正在解决它。
\n
https://earthdata.nasa.gov/standards/hdf5
\n\n示例1:
\n\n\n\n\n结果显示,从 HDF5 导入数据的时间最短,仅为 CSV 导入时间的约 50%,从 SQLITE 导入时间的约 25%。\n ://statcompute.wordpress。 com/标签/hdf5/
\n
示例2:
\n\nIn [18]: %timeit test_sql_read()\n1 loops, best of 3: 766 ms per loop\n\nIn [19]: %timeit test_hdf_fixed_read()\n10 loops, best of 3: 19.1 ms per loop\n\nIn [20]: %timeit test_hdf_table_read()\n10 loops, best of 3: 39 ms per loop\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n\n\n适合:
\n\n\xe2\x80\x93 您的数据是结构化的(您有一个 \xe2\x80\x98Schema\xe2\x80\x99)
\n\n\xe2\x80\x93 关系(行和列的表格)
\n\n\xe2\x80\x93 中型,<=几 GB总共
\n\n\xe2\x80\x93 事务操作(确保数据库一致)
\n
https://www.nersc.gov/assets/Uploads/09-Databases-Wahid2.pdf
\n\n在之前的 SO 讨论中:
\n\n\n\n\nSQLite 具有支持使用 SQL 进行数据库查询的功能。HDF5 具有支持大型科学数据集的功能。\n 评估 HDF5:HDF5 为数据建模提供哪些限制/功能?
\n
但是 Pandas(HDF5 到 PyTables)具有丰富的“查询”能力,最近它们包括了类似 SQL 的查询。
\n\nIn [171]: df.query(\'(a < b) & (b < c)\')\nOut[171]: \n a b c\n3 0.011763 0.022921 0.244186\n8 0.116822 0.364564 0.454607\nRun Code Online (Sandbox Code Playgroud)\n\nhttp://pandas.pydata.org/pandas-docs/stable/indexing.html#the-query-method-experimental
\n\n关于 HDF5 与 NOSQL 的一些见解
\n\n\n\n\n\n\n\n
\n- HDF5 不是数据库。MongoDB 具有 ACID 属性,HDF5 没有(可能很重要)。
\n- HDF5(除非您使用 MPI 版本)不支持并发写入访问(可以进行读取访问)。
\n
\n\n\n事实上,对于某些应用程序来说,数据库管理系统是不合理的:
\n\n\n
\n- 如果所有数据集都很小,
\n- 如果数据存储和访问要求不会改变(不需要灵活性)。
\n
http://www.barrodale.com/docs/Why%20don\t%20scientists%20use%20databases.pdf
\n\n希望能帮助到你。
\n| 归档时间: |
|
| 查看次数: |
2415 次 |
| 最近记录: |