假设有两个矩阵行数不同,维度相同,如A.shape = (500,300),B.shape = (200000,300),希望求出所有行向量之间的曼哈顿距离,输出一个矩阵M,Mij表示A中第i个行向量与B中第j个行向量的曼哈顿距离,M.shape=(500,200000)。我想到使用双循环
import numpy as np
def Manhadun(x,y):
return np.sum(np.abs(x-y))
def ManhadunMatrix(x,y):
M = np.empty((x.shape[0],y.shape[0]))
for i in range(x.shape[0]):
for j in range(y.shape[0]):
M[i][j] = Manhadun(x[i],y[j])
return M
但是双循环的速度太慢了,请问有没有更快的方法呢?直接对矩阵操作应该更快,但是没有思路。希望有人帮忙