Numpy dot 在标准化后返回不同的值。我有两个函数应该返回相同的值。import numpy as npfrom sklearn.preprocessing import normalizedef foo1(x, y): with np.errstate(invalid='ignore'): x_norm = np.nan_to_num(x / (np.linalg.norm(x, axis=0))) z = np.dot(x_norm, y / np.linalg.norm(y)) print(z)def foo2(x, y): x_norm = normalize(x, axis=0) z = np.dot(x_norm, normalize(y)) print(z)最小的可重现示例x = np.array([[1, 2, 3], [4, 5, 6]])y = np.array([[1], [2], [3]])foo1(x, y)foo2(x, y)输出[[0.62190562] [1.47271032]][[1.0611399 ] [2.79304638]]预期的第一个值。
添加回答
举报
0/150
提交
取消