python - R 相当于 numpy 'frombuffer'

标签 python r numpy binary-data

要在 Python 中解码来自套接字连接的二进制答案,我会这样做:

import numpy as np

answer= b"\x80\x8eaS\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x80\x8eaS\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00"

datatype = [('da_0', '<i8'), ('i8_1', '<i8')]

np.frombuffer(answer, datatype)

哪些输出

>>>array([(1398902400, 1), (1398902400, 1)], 
  dtype=[('da_0', '<i8'), ('i8_1', '<i8')])

我一直在与 R 中的 unpack() 函数(来自 {pack})进行斗争以重现相同的结果,但直到现在都没有成功。

任何想法将不胜感激!

最佳答案

在 R 中,您可以在连接或原始向量上使用 readBin

answer=as.raw(c(
0x80,0x8e,0x61,0x53,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x8e,0x61,0x53,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00))


readBin(answer[1:16],"integer", size=8,n=2, endian="little")
# [1] 1398902400          1 
readBin(answer[17:32],"integer", size=8, n=2, endian="little")
# [1] 1398902400          1

如果您的响应位于连接对象中,那么您不必担心索引以提取原始向量的正确部分。您可以只从二进制连接中读取,它会跟踪索引。

关于python - R 相当于 numpy 'frombuffer',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24762919/

相关文章:

python - 通过(python)查询ansible全局组变量

r - 将数字向量拆分为具有连续数字的不同 thunk

python - Matlab 到 Python 的转换

python - 使用多个属性键进行 Py2Neo 合并

python - Pandas - 根据另一个单元格的先前值填充 NaN

R循环/lapply,使用group by进行累计总计

oop - 将 RInside 的 'R' 实例作为类/方法之间的参数传递

python - 我可以将numpy与AMD的gpu加速blas库链接起来吗

python - 无法加载已保存的 FLANN 索引

python - 如何将装饰器与@contextmanager 装饰器混合使用?