У меня есть этот кусок кода:Divide NumPy массив Python
n = np.load(matrix)["arr_0"]
shape = n.shape
##colsums and rowsums
rows = {}
cols = {}
for i in xrange(shape[0]): #row
rows[i] = np.sum(n[i,:])
for j in xrange(shape[1]): #cols
cols[j] = np.sum(n[:,j])
##looping over bins
for i in xrange(shape[0]): #row
print i
for j in xrange(shape[1]): #column
if rows[i] == 0 or cols[j] == 0:
continue
n[i,j] = n[i,j]/math.sqrt(rows[i]*cols[j])
Это в основном петли над Numpy матрицы с формой (50000,50000)
и мне нужно разделить каждое значение для квадратного корня из произведения суммы соответствующий столбец на сумму соответствующей строки. Моя реализация занимает много времени. Есть ли у вас предложения по улучшению его работы?
Там обычно нет необходимости в явном виде при помощи петель при использовании 'np.array'. Если вы тогда, вы, вероятно, слишком усложняете что-то. – DeepSpace