如何将每一行中的最大值以及所有其他数字保留为 0

用户157522

我想保留每一行中的最大值并将所有其他值更改为零,就像这样

a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 9, 8])
should be 
[0,0,0,0,0,0,0,0,9,0]

到目前为止,我已经能够将最大值变为 1,并将所有其他值变为 0。

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

我怎样才能保留原来的价值?我想将 b 与 a 相乘,这可能可以解决它。但肯定必须有一个更简单的方法。

大威

您可能会numpy.where用于此任务

import numpy as np
a = np.array([[0, 1, 2, 3, 4, 5, 6, 7, 9, 8]])
b = np.where(a==np.max(a), a, 0)
print(b)

输出

[[0 0 0 0 0 0 0 0 9 0]]

说明:这确实满足条件的位置和所有其他位置创建了numpy.array具有相同形状a和相应值的值a0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何仅在多个列中的一行中保留最小值,并在R中将所有其他行值设为0

如何在 TensorFlow 中将每行中的最大值更改为 1,将所有其他数字更改为 0?

NumPy:在每一行中找到最大值,将其设置为1并设置为0

当Pyspark数据帧中的标志为1时,如何获取标志为0时的最后一行值以及如何将当前行值获取为新列

用特定数字替换一行中的最大值,并使用dplyr根据该最大值替换该行中的所有其他值

numpy矩阵,通过对每一行进行排序将0设置为值

如何在列表中找到最大值,然后随着其他值的增加而增加,并期望将其设置为0

对于每一行,将数字大于 0 的单元格放入列列表中

如何缩放列表中最大值为 1 且最小值为 0 的所有值

如何将由一个“ 0”字符组成的所有行更改为其他行?

如何在矩阵中将每个最大值更改为1,沿列的其他值为0?

仅将第一个值保留在重复的列上(将0设置为其他值)

保留第一个非零元素,将所有其他元素设置为0

pyspark-使用最大值为列创建从0到该值的行值循环,并为其重复其他列值

如何将 AVX ymm 寄存器中的所有值设置为相同(均为 0/1/特定值)?

如何使每列中的所有重复值都填充为“0”

如果给定的一组列中的所有值都为 0,如何删除一行

如何将一行中的值与所有其他行中的值进行比较?

如何消除其中一行中值为 0 的所有列?

如何选择一个具有其他列最大值的列,以及另一个表中该列的所有对应行?

如何将嵌套df中变量中出现次数少于k次的所有值设置为0

向量的最大值显示为0

如何将每个第一个唯一的多索引设置为 0 并为其他索引计算值

将所有列除以一,一行一行,打印NA,除以0

如何将第一行的列值相乘添加到组中的所有其他行?

如何将0/1编码值与同一文件中提供的键匹配,并以bash格式重写为一行(而不是列表)

如何将Oracle DB中的所有序列重置为0?

如何将SQL的所有列中的NULL值更新为0

将数据帧中的行替换为0,且前一行的值大于0