Python 变换numpy矩阵
我正在尝试以以下方式变换numpy矩阵(例如“Mat”):Python 变换numpy矩阵,python,numpy,Python,Numpy,我正在尝试以以下方式变换numpy矩阵(例如“Mat”): Mat[i,j] = Mat[i,j] - numpy.sum(Mat[i,:]) * numpy.sum(Mat[:,j]) 下面是我正在使用的代码(两个用于循环)。我想知道是否有更快的方法来实现这一点 def Normalize(Mat): MargR = Mat.sum(axis=0) MargC = Mat.sum(axis=1) for i in range(len(Mat[:,0])):
Mat[i,j] = Mat[i,j] - numpy.sum(Mat[i,:]) * numpy.sum(Mat[:,j])
下面是我正在使用的代码(两个用于循环)。我想知道是否有更快的方法来实现这一点
def Normalize(Mat):
MargR = Mat.sum(axis=0)
MargC = Mat.sum(axis=1)
for i in range(len(Mat[:,0])):
for j in range(len(Mat[0,:])):
Mat[i,j] = Mat[i,j] - MargC[i]*MargR[j]
return Mat
非常感谢您的帮助。您要乘以的第二个矩阵是求和行和求和列的外积,因此您可以将新矩阵写成:
Mat = Mat - np.outer(np.sum(Mat, axis=1), np.sum(Mat, axis=0))
真棒的回答!!