python – R等价于numpy’frombuffer’

要在 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')])

我一直在使用R中的unpack()函数(来自{pack})来重现相同的结果但直到现在都没有成功.

任何想法将不胜感激!

解决方法

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

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


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

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

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...