我有下面的numpy记录数组。
name module offset
filter-2 filter_module 0x000020
filter-3 filter_module 0x000042
filter-1 filter_module 0x000014我希望能够检测出哪个偏移值是最小的,它们的顺序是上升的。一个理想的产出是。
name module offset
filter-1 filter_module 0x000014
filter-2 filter_module 0x000020
filter-3 filter_module 0x000042下面是我生成这个numpy数组的代码
instance_dtype={
'names' : ('name','module','offset'),
'formats' : ('U20','U20','U20')}
instance= np.zeros(5,instance_dtype)
i=0
for node in xml_file.iter():
if node.tag=="instance":
attribute=node.attrib.get('name')
inst= (node.attrib.get('name'),node.attrib.get('module'),node.attrib.get('offset'))
instance[i]=inst
i=i+1
print('%10s,%15s,%5s'%tuple(rec))如何读取偏移量值,找出哪个值最低,然后重新组织数组,从最小的偏移值开始到最大的偏移值?
发布于 2015-10-07 19:59:58
任何“列”都可以按名称访问:
inst['name']
inst['module']np.sort接受一个order参数-参见其文档中的一个示例
在不重新创建数组的情况下,我认为这应该是可行的:
inst1 = np.sort(inst, order='offset')inst1应该使用按“偏移量”排序的行进行打印。
您还可以在特定字段上尝试argsort:
idx = np.argsort(inst['offset'])
inst[idx]https://stackoverflow.com/questions/33001141
复制相似问题