我有一个看起来像这样的数组:
np.array([[0 , 5, 1], [0, 0, 3], [1, 7, 0]])
我想检查每个元素是否为非零,如果它是非零,则将其替换为一个数字,该数字跟踪它检查了多少个元素。也就是说,我希望最终产品看起来像
np.array([[0, 2, 3], [0, 0, 6], [7, 8, 0]])
第一行显示为 [0, 2, 3]
因为第二个元素被第二次检查,通过了测试,然后被替换(依此类推)。谁能想到任何解决方案?我想 numpy 的索引在这里会非常有用。谢谢!
最佳答案
你可以这样做:
np.where(a == 0, a, np.arange(a.size).reshape(a.shape) + 1)
关于python - 用 "Element Number"替换数组中的元素 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58115128/