2016-11-04 12 views
0

numbaを使ってPython関数を高速化しようとしていますが、コンパイルできないようです。 my関数の入力は、np.int32型の27×4配列です。 My機能は次のとおりです。numbaでPython関数を最適化する

@nb.jit(nopython=True) 
def edge_profile(input): 
    pos = input[:,:3] 
    val = input[:,3] 
    centre = np.mean(pos,axis=0).astype(np.int32) 
    diff = np.absolute(pos-centre).sum(axis=1) 
    cell_edge = np.zeros(3) 
    for i in range(3): 
     idx = np.where(diff==i+1)[0] 
     idy = np.where(val[idx]==1)[0] 
     cell_edge[i] = len(idy) 
    return cell_edge.astype(np.int32) 

しかし、これは私が問題を診断するために使用することができませんでし持っている非常に大規模なエラーメッセージが表示されます。私は次のように入力タイプを指定しようとしました:しかし、これは同じように大きなエラーメッセージを生成します。 numbaでサポートされていない関数/機能を使用している可能性がありますが、問題を特定するための十分な知識はありません。どんな助けでも大歓迎です。

答えて

0

高速化したい機能の基本リストと配列に固執する限り、Numbaは正常に動作するはずです。 numpyの関数は、既に最適化されていると思われます。あなたがそれを働かせてもスピードアップが見られることはありません。あなたはあなたのOSが何であるかは言及していません。 ubuntu 14.04では、hereで説明されているいくつかの手順を実行することができます。