1
排序容器我需要排序特殊numpy的陣列,其中,尺寸19的塊構成的元件,使用用戶定義的函數來確定這樣的塊的值。在Python/numpy的
第一次嘗試一直包裹陣列中的類和重載[]操作:
class W:
def __init__(self, filename="nn.txt"):
self.nn = array([int(i) for i in open(filename, "r").readlines()[1:]])
self.size = self.nn.size/19
def __getitem__(self, idx):
return self.nn[idx:idx+19]
def __len__(self):
return self.size
使用這種結構I提供一個比較操作符,其被傳遞給排序():
def avg_cmp(x, y):
return int(average(x)) - int(average(y))
u = W("nnsmall.txt")
sorted(u, cmp=avg_cmp)
然而,這種做法是太慢了。
任何提示?
那是相當的性能提升。謝謝。 – kyrre