gpt4 book ai didi

python - Pandas msgpack vs 泡菜

转载 作者:IT老高 更新时间:2023-10-28 20:47:43 35 4
gpt4 key购买 nike

Pandas 中的

msgpack 应该是 pickle 的替代品。

根据 Pandas docs on msgpack :

This is a lightweight portable binary format, similar to binary JSON, that is highly space efficient, and provides good performance both on the writing (serialization), and reading (deserialization).

然而,我发现它的性能似乎无法与泡菜相提并论。

df = pd.DataFrame(np.random.randn(10000, 100))

>>> %timeit df.to_pickle('test.p')
10 loops, best of 3: 22.4 ms per loop

>>> %timeit df.to_msgpack('test.msg')
10 loops, best of 3: 36.4 ms per loop

>>> %timeit pd.read_pickle('test.p')
100 loops, best of 3: 10.5 ms per loop

>>> %timeit pd.read_msgpack('test.msg')
10 loops, best of 3: 24.6 ms per loop

问题:除了 pickle 的潜在安全问题之外,msgpack 与 pickle 相比有哪些优势? pickle 仍然是序列化数据的首选方法,还是目前存在更好的替代方法?

最佳答案

泡菜更适合以下用途:

  1. 数值数据或任何使用缓冲区协议(protocol)(numpy 数组)的数据(但前提是您使用的是最近的 protocol=)
  2. Python 特定的对象,如类、函数等。(虽然在这里你应该看看 cloudpickle)

MsgPack 更适合以下情况:

  1. 跨语言互操作。它是 JSON 的替代品,但有一些改进
  2. 文本数据和 Python 对象的性能。在任何设置下,它都比 Pickle 快得多。

正如@Jeff 上面所说的 this blogpost可能感兴趣

关于python - Pandas msgpack vs 泡菜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30651724/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com