【发布时间】:2016-12-20 09:19:54
【问题描述】:
我有一个 0 和 1 (512 x 512) 的 numpy 数组。我想计算 1 形状的centroid(它们都连接在数组中间的一个圆形斑点中)。
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 函数可以并行执行此操作?
【问题讨论】:
-
你也可以使用
np.count_nonzero()代替count变量。
标签: performance python-2.7 numpy vectorization centroid