[英]sorting by field numpy array
我写了这段代码:
def readFile(filename):
a = open(filename,'r')
strs = np.array(0,dtype=[('nstr','d'),('test','f')])
for i in a.readlines():
if i[0] != '#':
line = i.split()
if len(line) > 0:
tmp_strs = np.array(1,dtype=[('nstr','d'),('test','f')])
tmp_strs['nstr'] = int(line[0])
tmp_strs['test'] = float(line[1])
strs = np.append(strs,tmp_strs)
return strs
现在我想在 nstr 字段之后对这个 numpy 数组进行排序。 使用 numpy 数组的 sort 函数很容易做到这一点。 无论如何,我遇到了一种我无法理解的奇怪行为。 如果我做这样的事情:
test = readFile(filename)
test.sort(order='nstr')
一切正常。 但是如果我改变函数内部的返回值
return strs.sort(order='nstr')
返回值是 None ......有人可以向我解释为什么会发生这种情况吗? 我没有任何解释
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.