Обе строки возвращают массив.

вая 2Dnumpy массив, мне нужно вычислить скалярное произведение каждого столбца с собой и сохранить результат в одномерном массиве. Следующие работы:

In [45]: A = np.array([[1,2,3,4],[5,6,7,8]])

In [46]: np.array([np.dot(A[:,i], A[:,i]) for i in xrange(A.shape[1])])
Out[46]: array([26, 40, 58, 80])

Есть ли простой способ избежать цикла Python? Вышесказанное вряд ли конец света, но если естьnumpy Примитивно для этого, я хотел бы использовать его.

редактировать На практике матрица имеет много строк и относительно мало столбцов. Поэтому я не слишком заинтересован в создании временных массивов, превышающихO(A.shape[1]), Я тоже не могу изменитьA на месте.

Ответы на вопрос(3)

Ваш ответ на вопрос