在 Python 之外读取 numpy 数组

2024-02-10

在最近的一次question https://stackoverflow.com/questions/2721521/fastest-way-to-generate-delimited-string-from-1d-numpy-array我询问将大型 numpy 数组转换为分隔字符串的最快方法。我提出这个问题的原因是因为我想获取该纯文本字符串并将其传输(例如通过 HTTP)到用其他编程语言编写的客户端。显然,任何客户端程序都可以轻松使用分隔的数字字符串。但是,有人建议,由于字符串转换速度很慢,因此在 Python 端对数组进行 Base64 编码并将其作为二进制发送会更快。这确实更快。

我现在的问题是,(1)如何确保编码的 numpy 数组能够很好地传输到不同操作系统和不同硬件上的客户端,以及(2)如何在客户端解码二进制数据。

对于(1),我倾向于做如下的事情

import numpy as np
import base64
x = np.arange(100, dtype=np.float64)
base64.b64encode(x.tostring())

我还有什么需要做的吗?

对于 (2),我很乐意在任何编程语言中提供一个示例,其目标是采用浮点数的 numpy 数组并将它们转换为类似的本机数据结构。假设我们已经完成了 Base64 解码并拥有一个字节数组,并且我们还知道 numpy dtype、维度以及所需的任何其他元数据。

Thanks.


你真的应该调查一下OPeNDAP http://www.opendap.org/简化科学数据网络的各个方面。对于 Python,请查看Pydap http://pydap.org/.

您可以通过以下方式直接将 NumPy 数组存储为 HDF5 格式h5py http://code.google.com/p/h5py/(或 NetCDF),然后使用 OPeNDAP 通过 HTTP 将数据流式传输到客户端。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 之外读取 numpy 数组 的相关文章

随机推荐