您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

numpy:将每行的max更改为1,所有其他数字更改为0

numpy:将每行的max更改为1,所有其他数字更改为0

方法1,调整您的方法

>>> a = np.array([[0, 1], [2, 3], [4, 5], [6, 7], [9, 8]])
>>> b = np.zeros_like(a)
>>> b[np.arange(len(a)), a.argmax(1)] = 1
>>> b
array([[0, 1],
       [0, 1],
       [0, 1],
       [0, 1],
       [1, 0]])

[实际上,range可以正常工作;我arange出于习惯写信。]

方法2,使用max而不是argmax处理多个元素达到最大值的情况:

>>> a = np.array([[0, 1], [2, 2], [4, 3]])
>>> (a == a.max(axis=1)[:,None]).astype(int)
array([[0, 1],
       [1, 1],
       [1, 0]])
其他 2022/1/1 18:25:21 有403人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶