我有一个对角线上有零的矩阵,最高的值是20,最低的是1,我现在想把20改成1,把19改成2,反过来,把1改成20,把2改成19。对角线仍应保持为零或采用infinte值。 目前我只知道如何缩放它们,但不知道。如果这个问题是重复的请直接告诉我,我找不到答案。你知道吗
matrix=pd.DataFrame(np.random.randint(0,20,size=(4, 4)),
columns=list('ABCD'))
matrix.values[[np.arange(len(matrix))]*2]=0
#this is just scaling down, which Idont want
revisedmatrix=(1./(matrix+1))
revised.values[[np.arange(len(revised))]*2]=0
从
matrix
中减去最大值:现在,用零填充对角线:
或者,使用@AChampion在注释中建议的
np.fill_diagonal
:相关问题 更多 >
编程相关推荐