я в настоящее время с помощью SciPy
вычислить расстояние евклидовойевклидова расстояния с весами
dis = scipy.spatial.distance.euclidean(A,B)
где; A, B представляют собой 5-разрядные битовые векторы. Теперь он отлично работает, но если я добавлю веса для каждого измерения, можно ли использовать scipy?
Что я сейчас: sqrt((a1-b1)^2 + (a2-b2)^2 +...+ (a5-b5)^2)
Что я хочу: sqrt(w1(a1-b1)^2 + w2(a2-b2)^2 +...+ w5(a5-b5)^2)
с помощью SciPy или NumPy или любой другой эффективный способ сделать это.
Thanks
Это не норма, содержащаяся в этом вопросе - вы квадрат веса. Также '.sum()' полностью избыточно, 'q * q.T' является скалярным произведением вектора с самим собой, т.е. это * есть сумма. – talonmies
Вы правильно относитесь к весам, я должен был быть более осторожным, однако ваша критика о том, что '.sum()' является полностью избыточной, ошибочна. Результатом 'q * q.T' будет матрица 1x1, которая будет неожиданным типом возврата для функции нормы, сумма превратит ее в скаляр. – wim
Но зачем использовать 'sum()' для приведения в скаляр? 'np.asscalar' будет в несколько раз быстрее'? – talonmies