Numpy fromfile可以省略字段吗?

Numpy fromfile可以省略字段吗?,numpy,fromfile,Numpy,Fromfile,我从给定的二进制格式读取数据,但我只对字段的子集感兴趣 例如: MY_DTYPE = np.dtype({'names': ('A', 'B', 'C'), 'formats': ('<f8', '<u2', 'u1')}) data = np.fromfile(infile, count=-1, dtype=MY_DTYPE) 假设我真的不需要数据['C'],是否可以指定首先要保留哪些字段?模拟负载: In [117]: MY_DTYPE = np.dtype({'names'

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

例如:

MY_DTYPE = np.dtype({'names': ('A', 'B', 'C'), 'formats': ('<f8', '<u2', 'u1')})

data = np.fromfile(infile, count=-1, dtype=MY_DTYPE)
假设我真的不需要数据['C'],是否可以指定首先要保留哪些字段?

模拟负载:

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)
它提供了重新打包功能,以制作正确的副本:


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

加载后将其删除。感谢您的回答,这是否意味着数据和新副本同时存在于内存中?Out[121]是一个视图,而Out[123]是一个副本,一个新数组。它不能代替数据。我遇到了一个我想解决的内存问题,如果某些字段一开始就没有存储,我可以加载更多。
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})
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')])