加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – R等价于numpy’frombuffer’

发布时间:2020-12-20 13:43:41 所属栏目:Python 来源:网络整理
导读:要在 Python中解码来自套接字连接的二进制答案,我会这样做: import numpy as npanswer= b"x80x8eaSx00x00x00x00x01x00x00x00x00x00x00x00x80x8eaSx00x00x00x00x01x00x00x00x00x00x00x00"datatype = [('da_0','i8'),('i8_1','i8
要在 Python中解码来自套接字连接的二进制答案,我会这样做:

import numpy as np

answer= b"x80x8eaSx00x00x00x00x01x00x00x00x00x00x00x00x80x8eaSx00x00x00x00x01x00x00x00x00x00x00x00"

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读