python - 用 "Element Number"替换数组中的元素 (Python)

标签 python arrays numpy

我有一个看起来像这样的数组:

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/

相关文章:

python - GCS - 数据损坏 : Checksum mismatch while downloading

Python,建立独占的TCP连接

arrays - 遍历 Go 中的任意可迭代数据结构

arrays - 使用在大多数情况下只有一个元素的向量/列表是一种浪费/糟糕的设计吗?

python - numpy:NaN 和掩码数组之间的区别

Python:不在网格数据上的双变量样条

python - Angular.js 和 Genshi - 使用 $ 发生冲突

python - Tornado 打包在可执行的 Egg 中 - 如何引用模板

带有索引搜索的 JavaScript 范围

python - 组合 12 个 1x3 矩阵