Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 高效创建关联矩阵numpy_Python_Numpy - Fatal编程技术网

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