python - 在 Python 之外读取 numpy 数组

标签 python numpy

在最近的 question我询问了将大型 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 float 组并将它们转换为类似的 native 数据结构。假设我们已经完成了 base64 解码并有一个字节数组,并且我们还知道 numpy 数据类型、维度和任何其他需要的元数据。

谢谢。

最佳答案

你真的应该看看OPeNDAP简化科学数据网络的各个方面。对于 Python,请查看 Pydap .

您可以通过 h5py 将 NumPy 数组直接存储为 HDF5 格式(或 NetCDF),然后使用 OPeNDAP 通过 HTTP 将数据流式传输到客户端。

关于python - 在 Python 之外读取 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2725602/

相关文章:

python - Numpy 多维数组赋值未知登录错误

python - 为什么在遍历 NumPy 数组时 Cython 比 Numba 慢很多?

Python Pelican 订单菜单项

python - 元素当前不可见,因此可能无法与之交互,Selenium Dropdown Box Python

python - onehotencoder 的用法

python - 使用 matplotlib.pyplot 和 numpy 在 python 中显示 Mandelbrot 集

python - 在 matplotlib 1.20 中显示 quvier key 和补丁的错误的解决方法

python - 将所有内容放在应用程序中心会弄乱 `DatePickerSingle` 和 `RadioItems`

python - 使用具有现有数据库 ID 字段的 Django 问题

python - 在 Django 模板中为 Highcharts 设置 Pandas 数据帧中的 JSON 格式