首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fromfile可以省略字段吗?

fromfile可以省略字段吗?
EN

Stack Overflow用户
提问于 2019-09-10 09:18:12
回答 1查看 15关注 0票数 0

我正在从给定的二进制格式读取数据,但是我只对字段的一个子集感兴趣。

例如:

代码语言:javascript
复制
MY_DTYPE = np.dtype({'names': ('A', 'B', 'C'), 'formats': ('<f8', '<u2', 'u1')})

data = np.fromfile(infile, count=-1, dtype=MY_DTYPE)

假设我并不真的需要data['C'],是否可以指定我想要保留在第一位的字段?

EN

回答 1

Stack Overflow用户

发布于 2019-09-10 09:46:23

模拟载荷:

代码语言:javascript
复制
In [117]: MY_DTYPE = np.dtype({'names': ('A', 'B', 'C'), 'formats': ('<f8', '<u2', 'u1')})                   
In [118]: data = np.zeros(3, MY_DTYPE)                                                                       
In [119]: data                                                                                               
Out[119]: 
array([(0., 0, 0), (0., 0, 0), (0., 0, 0)],
      dtype=[('A', '<f8'), ('B', '<u2'), ('C', 'u1')])
In [120]: data['C']                                                                                          
Out[120]: array([0, 0, 0], dtype=uint8)

在最新的numpy版本中,多字段索引创建了一个view

代码语言:javascript
复制
In [121]: data[['A','B']]                                                                                    
Out[121]: 
array([(0., 0), (0., 0), (0., 0)],
      dtype={'names':['A','B'], 'formats':['<f8','<u2'], 'offsets':[0,8], 'itemsize':11})

它提供了一个repack_fields函数来制作一个合适的copy

代码语言:javascript
复制
In [122]: import numpy.lib.recfunctions as rf                                                                
In [123]: rf.repack_fields(data[['A','B']])                                                                  
Out[123]: array([(0., 0), (0., 0), (0., 0)], dtype=[('A', '<f8'), ('B', '<u2')])

有关更多信息,请参阅repack的文档,或查看最新的发行说明。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57862876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档