У меня заканчивается провал мозга, но я просто не могу заставить это работать. У меня есть массив расстояний:Вычислить квадратные расстояния от матрицы numpy
import numpy as np
zvals = np.linspace(-5,5,10)
d = np.array([(0,0,z) for z in zvals])
Я хочу вычислить квадратное расстояние точек в массиве. Без NumPy способ сделать эту работу:
d2 = np.array([np.dot(d[i,:],d[i,:]) for i in range(d.shape[0])])
Однако, я знаю , что должен быть какой-то способ сделать это с помощью всего одного вызова точка, не так ли? Это, как говорится, ни
d2 = np.dot(d,d.T)
или
d2 = np.dot(d.T,d)
не дают то, что я хочу. Я понимаю, что глупо, но, пожалуйста, просветите меня здесь. Благодаря!
Hmmm.np.diag (np.dot (d, d.T)), похоже, работает. Есть ли способ лучше?? – Rick