开发者社区> 问答> 正文

用“元素下标”替换数组中的元素

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

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的索引在这里将非常有用。谢谢!

展开
收起
游客6qcs5bpxssri2 2019-09-26 19:49:33 1264 0
1 条回答
写回答
取消 提交回答
  • 你可以做:

    np.where(a == 0, a, np.arange(a.size).reshape(a.shape) + 1)

    2019-09-27 09:53:59
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载