我现在正在try 如何从Base64数据恢复Numpyarray.这个问题和答案表明这是可能的:Reading numpy arrays outside of Python个,但没有给出一个例子.

以下面的代码为例,如果我知道数组的数据类型和形状,如何从base64数据中获取Numpy数组?

import base64
import numpy as np

t = np.arange(25, dtype=np.float64)
s = base64.b64encode(t)
r = base64.decodestring(s)
q = ????? 

我希望一条python语句将q设置为dtype float64的一个数字数组,这样结果就是一个与t相同的array.

>>> t = np.arange(25,dtype=np.float64)
>>> t
array([  0.,   1.,   2.,   3.,   4.,   5.,   6.,   7.,   8.,   9.,  10.,
    11.,  12.,  13.,  14.,  15.,  16.,  17.,  18.,  19.,  20.,  21.,
    22.,  23.,  24.])
>>> s=base64.b64encode(t)
>>> s
'AAAAAAAAAAAAAAAAAADwPwAAAAAAAABAAAAAAAAACEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAGEAAAAAAAAAcQAAAAAAAACBAAAAAAAAAIkAAAAAAAAAkQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAqQAAAAAAAACxAAAAAAAAALkAAAAAAAAAwQAAAAAAAADFAAAAAAAAAMkAAAAAAAAAzQAAAAAAAADRAAAAAAAAANUAAAAAAAAA2QAAAAAAAADdAAAAAAAAAOEA='
>>> r = base64.decodestring(s)
>>> r
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x08@\x00\x00\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x00\x00\x14@\x00\x00\x00\x00\x00\x00\x18@\x00\x00\x00\x00\x00\x00\x1c@\x00\x00\x00\x00\x00\x00 @\x00\x00\x00\x00\x00\x00"@\x00\x00\x00\x00\x00\x00$@\x00\x00\x00\x00\x00\x00&@\x00\x00\x00\x00\x00\x00(@\x00\x00\x00\x00\x00\x00*@\x00\x00\x00\x00\x00\x00,@\x00\x00\x00\x00\x00\x00.@\x00\x00\x00\x00\x00\x000@\x00\x00\x00\x00\x00\x001@\x00\x00\x00\x00\x00\x002@\x00\x00\x00\x00\x00\x003@\x00\x00\x00\x00\x00\x004@\x00\x00\x00\x00\x00\x005@\x00\x00\x00\x00\x00\x006@\x00\x00\x00\x00\x00\x007@\x00\x00\x00\x00\x00\x008@'
>>> q = np.array( ????

我问这个问题的原因是因为我正在做一个项目,我想在Django驱动的应用程序中的MySQL数据库中存储大量的Numpyarray.

使用此Django代码片段,我可以将base64数据存储在文本字段中:http://djangosnippets.org/snippets/1669/

我希望将数组作为base64写入数据库,而不是将数组转换为Unicode字符串.

谢谢你的帮助.

推荐答案

import base64
import numpy as np

t = np.arange(25, dtype=np.float64)
s = base64.b64encode(t)
r = base64.decodebytes(s)
q = np.frombuffer(r, dtype=np.float64)

print(np.allclose(q, t))
# True

Django相关问答推荐

在Django的反向函数中添加动态URL

基于Django类的视图:除非登录,否则拒绝访问future 日期

Urls.py中路径**kwargs的Django翻译?

Django基于查询集动态筛选字段名称

Django 和 HTML 无法从指定时间开始视频

Django ORM:获取每个类别的月平均价格

Django 模板:翻译带有 HTML 的文本块的最佳实践

Django REST Framework ModelSerializer get_or_create 功能

无法通过 pip 安装 Django 2.0

Ruby on Rails 会影响网页的外观吗?

用户组和权限

重命名 django 元素的简单方法

在 django admin 中创建对象时如何自动插入当前用户?

如何使用基于类的视图处理表单(通过 get 或 post)?

Django manage.py:在其依赖之前应用迁移

升级到 Django 1.8 后提供的固定默认值

暂时禁用 Django 缓存

关闭 Django Rest Framework ModelViewSet 的自动分页

django.urls.path中name参数的作用是什么?

如何从 django 请求中获取完整的 url