Python 从字节或字符串重新排列Numpy
我有一个进程,需要将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
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')])