Python 高效创建关联矩阵numpy
我目前使用这段代码来计算亲和矩阵Python 高效创建关联矩阵numpy,python,numpy,Python,Numpy,我目前使用这段代码来计算亲和矩阵 m = np.size(pts[0]) A = np.zeros(m*m).reshape(m,m) for i,x in enumerate(pts[0]): for j,y in enumerate(pts[1]): A[i,j] = np.exp(-1*np.linalg.norm(x-y)**2) 其中,pts是nx2矩阵。这适用于较小尺寸,但为O(n^2)。结果应该是一个带有权重的nxn矩阵。这是一个矢量化版本: #n = 1
m = np.size(pts[0])
A = np.zeros(m*m).reshape(m,m)
for i,x in enumerate(pts[0]):
for j,y in enumerate(pts[1]):
A[i,j] = np.exp(-1*np.linalg.norm(x-y)**2)
其中,pts是nx2矩阵。这适用于较小尺寸,但为O(n^2)。结果应该是一个带有权重的nxn矩阵。这是一个矢量化版本:
#n = 10
#pts = np.random.rand(2, n)
X, Y = np.meshgrid(pts[1], pts[0])
A = np.exp(-np.abs(X-Y)**2) # you can omit the abs because of **2
以下是矢量化版本:
#n = 10
#pts = np.random.rand(2, n)
X, Y = np.meshgrid(pts[1], pts[0])
A = np.exp(-np.abs(X-Y)**2) # you can omit the abs because of **2