python中的base64到numpy数组
我有一个pdf文件,我将其转换成base64,然后将其解码成二进制格式,即(010101010),如下所示。但是我希望这个base64编码的数据在一个NumPy数组中。因此,它以光栅二进制形式表示 下面是我迄今为止尝试过的代码。它将我转换为二进制数,但如何将其转换为NumPy 2D数组python中的base64到numpy数组,python,arrays,numpy,raster,Python,Arrays,Numpy,Raster,我有一个pdf文件,我将其转换成base64,然后将其解码成二进制格式,即(010101010),如下所示。但是我希望这个base64编码的数据在一个NumPy数组中。因此,它以光栅二进制形式表示 下面是我迄今为止尝试过的代码。它将我转换为二进制数,但如何将其转换为NumPy 2D数组 with open("sample.pdf", "rb") as pdf_file: encoded_string = base64.b64encode(pdf_file.read()) deco
with open("sample.pdf", "rb") as pdf_file:
encoded_string = base64.b64encode(pdf_file.read())
decoded = base64.decodebytes(encoded_string)
decoded_binary_val= "".join(["{:08b}".format(x) for x in decoded])
print(decoded_binary_val)
相同的结果以(01010101011110101110110101111101011111111010101011)此格式显示。但是我想要一个NumPy 2D数组,即(r*c)你可以做
arr=np.array([c代表解码二进制值中的c])
这将为您提供一个字符串的numpy数组。
如果您想要数字,可以执行以下操作:
arr=np.array([int(c)表示解码二进制值中的c])
编辑-另一个选项:
如果需要字符串值,也可以将其强制转换为列表,如下所示:
arr=np.array(列表(已解码的二进制值))
但如果你想要数字,你可能需要映射:
arr=np.array(列表(map(int,解码的二进制值)))
我无法测量性能差异,因此您必须检查您的设置。您可以这样做
arr=np.array([c代表解码二进制值中的c])
这将为您提供一个字符串的numpy数组。
如果您想要数字,可以执行以下操作:
arr=np.array([int(c)表示解码二进制值中的c])
编辑-另一个选项:
如果需要字符串值,也可以将其强制转换为列表,如下所示:
arr=np.array(列表(已解码的二进制值))
但如果你想要数字,你可能需要映射:
arr=np.array(列表(map(int,解码的二进制值)))
我无法测量性能上的差异,因此您必须检查您的设置。我希望根据base64图像的高度和宽度将其放入2D NumPy阵列假设您知道大小,您可以在1d阵列上使用np.Reformate。例如arr.Reformate((r,c))。这就是如何获得大小的问题。我不能假设pdf的大小?在这种情况下,这是一个完全不同的问题。除非它存储在某个头文件中,否则无法从字节流中获取。无法帮助您。我希望根据base64图像的高度和宽度将其放入2D NumPy数组假设您知道大小,您可以在1d数组上使用np.Reformate。例如arr.Reformate((r,c))。这就是如何获得大小的问题。我不能假设pdf的大小?在这种情况下,这是一个完全不同的问题。除非它存储在某个头文件中,否则无法从字节流中获取。我帮不了你。