【问题标题】:Encoding and decoding numpy.array to base64. Why is necessary to use numpy.frombuffer?将 numpy.array 编码和解码为 base64。为什么需要使用 numpy.frombuffer?
【发布时间】:2021-10-31 09:06:57
【问题描述】:

请考虑以下代码:

import base64
import numpy as np

array = np.array([1,2]).astype('float32')

arrayencode64 = base64.b64encode(array)

arraydecode64 = base64.b64decode(arrayencode64)

ARRAY = np.frombuffer(arraydecode64, dtype='float32')

print(array)
print()
print(arrayencode64)
print()
print(arraydecode64)
print()
for el in arraydecode64:
    print(el)
print()
print(ARRAY)

问题1:我想了解一下为什么在应用base64.b64decode之后,我没有检索到原始对象?我的意思是,为什么需要使用指定类型的 np.frombuffer 读取它?

因为,我希望在应用 base64.b64decode 之后就可以获取目标对象(数组变量中绑定的 numpy.array)。

问题 2: 当我使用 for 循环 打印变量 arraydecode64 时,我得到了一个数字序列。它们到底是什么意思?

谢谢。

【问题讨论】:

    标签: python-3.x base64 decode encode


    【解决方案1】:

    根据documentationbase64.b64decode 所做的只是获取一个字符串并返回一个字节对象。 np.frombuffer 然后获取这些字节并创建数组。 base64 不知道numpy 是如何表示字节的,也不知道数组是什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-30
      • 2017-07-24
      • 2017-11-30
      • 1970-01-01
      • 2012-02-13
      • 2015-07-14
      相关资源
      最近更新 更多