Python 从字节或字符串重新排列Numpy

Python 从字节或字符串重新排列Numpy,python,pandas,numpy,recarray,Python,Pandas,Numpy,Recarray,我有一个进程,需要将numpy重新排列转换为字节, 然后从字节中重建重新排列 但是,我不确定如何从字节恢复阵列 有人知道我怎么做吗 示例代码: import numpy as np import pandas as pd df = pd.DataFrame(np.zeros(500)) rec = df.to_records() rec_s = rec.tostring() # this returns a bytes object # perform some computation

我有一个进程,需要将numpy重新排列转换为字节, 然后从字节中重建重新排列

但是,我不确定如何从字节恢复阵列

有人知道我怎么做吗

示例代码:

import numpy as np
import pandas as pd

df = pd.DataFrame(np.zeros(500))
rec = df.to_records()
rec_s = rec.tostring()  # this returns a bytes object

# perform some computation

new_rec = <method to recover from bytes>(rec_s)
注意:我实际上不需要使用numpy recarry,只需要一些结构,它允许我将pandas数据帧转换为bytes对象,并恢复它

使用相同的数据类型恢复它:

In [502]: np.frombuffer(astr, arr.dtype)                                                       
Out[502]: 
array([(1, 1, 1.), (1, 1, 1.), (1, 1, 1.)],
      dtype=[('f0', '<i4'), ('f1', '<i4'), ('f2', '<f4')])
如果源是二维的,则还必须重塑形状

In [502]: np.frombuffer(astr, arr.dtype)                                                       
Out[502]: 
array([(1, 1, 1.), (1, 1, 1.), (1, 1, 1.)],
      dtype=[('f0', '<i4'), ('f1', '<i4'), ('f2', '<f4')])