1
このようなブロックの値を決定するためにユーザ定義関数を使用して、サイズが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
)を(ソート:
def avg_cmp(x, y):
return int(average(x)) - int(average(y))
u = W("nnsmall.txt")
sorted(u, cmp=avg_cmp)
ただし、このアプローチは遅すぎます。
ヒント?
かなり性能が向上されたこと。ありがとうございました。 – kyrre