python和数据库比哪个处理数据块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python和数据库比哪个处理数据块相关的知识,希望对你有一定的参考价值。
Python与R相比速度要快。Python可以直接处理上G的数据;R不行,R分析数据时需要先通过数据库把大数据转化为小数据(通过groupby)才能交给R做分析,因此R不可能直接分析行为详单,只能分析统计结果。所以有人说:Python=R+SQL/Hive,并不是没有道理的。Python的一个最明显的优势在于其胶水语言的特性,很多书里也都会提到这一点,一些底层用C写的算法封装在Python包里后性能非常高效
(Python的数据挖掘包Orange canve
中的决策树分析50万用户10秒出结果,用R几个小时也出不来,8G内存全部占满)。但是,凡事都不绝对,如果R矢量化编程做得好的话(有点小难度),会
使R的速度和程序的长度都有显著性提升。 参考技术A Python与R相比速度要快。Python可以直接处理上G的数据;R不行,R分析数据时需要先通过数据库把大数据转化为小数据(通过groupby)才能交给R做分析,因此R不可能直接分析行为详单,只能分析统计结果。所以有人说:Python=R+SQL/Hive,并不是没有道理的。
Python的一个最明显的优势在于其胶水语言的特性,很多书里也都会提到这一点,一些底层用C写的算法封装在Python包里后性能非常高效
(Python的数据挖掘包Orange canve
中的决策树分析50万用户10秒出结果,用R几个小时也出不来,8G内存全部占满)。但是,凡事都不绝对,如果R矢量化编程做得好的话(有点小难度),会
使R的速度和程序的长度都有显著性提升。
如何在 Python 中逐块处理大型 PNG 图像中的数据
【中文标题】如何在 Python 中逐块处理大型 PNG 图像中的数据【英文标题】:How to process IDATA from large PNG images chunk by chunk, in Python 【发布时间】:2021-12-21 13:19:19 【问题描述】:首先,我想参考问题29513549,所有受访者似乎都同意,PNG 图像格式被设计为具有多个 IDAT 块以防更大的图像是有道理的 - 用于阅读和写作。这些 IDAT 块包含实际的图像值。 我的问题适用于阅读过程。为了重建这些值,首先需要使用 zlib 解压缩数据,然后应用反向过滤函数:未压缩的数据包含与先前值的差异,如果可能的话。到目前为止,我只遇到过将所有 IDATA 块连接在一起的示例——例如在Paul Tan 这个写得很好的博客中——这意味着所有数据都必须加载到内存中。我想这就是为什么 Python 包 pypng 的文档会警告 Reader 类的读取方法“可能使用过多内存”的原因。 我对zlib的解压不是很了解。我知道它被描述为here,但看起来很复杂。这是例如因为 IDAT 块之间的边界是任意的。终止 zlib 检查值很有可能在 IDAT 块之间拆分。同样,我想找到一种方法来解压缩 IDATA 块,而无需同时将所有数据加载到内存中——即使这可能意味着每个块必须被读取两次。如果没有办法做到这一点,那么从 PNG 图像中检索多个 IDAT 块的可能性是没有用的。我期待着您的回答。
【问题讨论】:
它主要是对编码器的优化:它不会为编写良好的解码器提供任何好处,它根本不应该关心块边界。zlib
stdlib 模块可以对数据流进行操作。创建一个流,获取zlib
以开始解压缩流,然后在从磁盘或网络读取数据时传递IDAT
数据。没有理由一次将一个块的图像数据通过管道传输到流中:只需在获取时通过管道传输即可。
【参考方案1】:
zlib 流,因此您可以一次简单地将一个 IDAT 块馈送到 zlib 的充气机,然后将解压后的数据取出。
【讨论】:
以上是关于python和数据库比哪个处理数据块的主要内容,如果未能解决你的问题,请参考以下文章
mysqli扩展跟CodeIgniter中的mysql类库比起来哪个好用?希望有两个都用过的有经验的解答