2016-08-13 12 views
1

私は0と1(512 x 512)のnumpy配列を持っています。私は1の形状のcentroidを計算したいと思う(それらはすべて配列の中央で1つの円形ブロブに接続されている)。すぐにバイナリのnumpy配列の重心を計算する

for i in xrange(len(array[:,0])): 
    for j in xrange(len(array[0,:])): 
     if array[i,j] == 1: 
      x_center += i 
      y_center += j 

count = (aorta == 1).sum() 
x_center /= count 
y_center /= count 

上記の計算を高速化する方法はありますか? numpy.where()などを使用できますか?これを並列に行うためのPython関数はありますか?

答えて

1

あなたがそうのように、中心点の座標を取得するために、2つのネストされたループを置き換えることができます -

x_center, y_center = np.argwhere(array==1).sum(0)/count 
関連する問題