为了账号安全,请及时绑定邮箱和手机立即绑定

将最高值更改为最低值 python

将最高值更改为最低值 python

婷婷同学_ 2021-10-10 10:57:34
我有一个对角线为零的矩阵,最大值是例如 20,最低值是 1,我现在想将 20 更改为 1,将 19 更改为 2 以及另一种方式,1 到 20,2 到19. 对角线仍应保持为零或取无穷大值。目前我只知道如何扩展它们但不知道。如果这个问题是重复的,请指导我,我找不到答案。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 wantrevisedmatrix=(1./(matrix+1))revised.values[[np.arange(len(revised))]*2]=0
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

减去最大值matrix

matrix = matrix.values.max() + 1 - matrix

现在,用零填充对角线:

matrix.values[(np.arange(len(matrix)),) * 2] = 0

或者,np.fill_diagonal按照@AChampion 在评论中的建议使用:

np.fill_diagonal(matrix.values, 0)


查看完整回答
反对 回复 2021-10-10
  • 1 回答
  • 0 关注
  • 263 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号