【问题标题】:How to add two numpy arrays into one?如何将两个numpy数组合二为一?
【发布时间】:2020-09-07 09:39:45
【问题描述】:

我有一个数组preds,它的值是0,1 or 2

preds 的形状和值如下所示:

torch.Size([1, 256, 256])
tensor([[[1, 1, 0,  ..., 1, 1, 2],
         [1, 0, 1,  ..., 1, 1, 1],
         [0, 0, 0,  ..., 1, 1, 1],
         ...,
         [0, 1, 1,  ..., 1, 1, 1],
         [1, 1, 1,  ..., 1, 1, 1],
         [1, 1, 1,  ..., 1, 1, 1]]])

我只关心第 2 和第 3 维度 (256 x 256)。我想使用matplotlib 创建一个掩码,它(分别)绘制012。基本上我想可视化图像中我们有0的所有地方,我们在哪里有1,我们在哪里有2。我想要它的分离图。

我在想类似的东西。例如 1 类:

  1. 获取我们有 1 的地方的 idice 并为其赋值 1 并为其他索引分配值 0。
  2. 使用plt.show 绘制它

例子:

zero = (preds==0).nonzero() #index of all values which have 0 
nonzero = (preds!=0).nonzero()    # index of all value which are not 0
# assign 1 to all zero
# assign 0 to all nonzero
# join the above two array
# plot the array

我只是不知道如何在我的伪代码中添加这两个数组(nonzerozero)。

有没有更 Pythonic 的方法呢?我不想遍历所有索引值,然后为它们赋值。

【问题讨论】:

  • 用三个参数查看np.where,首先是那个掩码。
  • @DavidBuck 实际上!这是我自己的问题。我认为我之前的问题由于某些错误而没有发布,所以我用不同的标题再次发布了它。有趣的是它出现了。
  • 抱歉重复的问题。我会删除问题。我的页面没有加载,所以我认为它没有发布
  • @Divakar np.where 只有在我理解正确的情况下才返回索引。我已经有了它们。我不知道下一步该怎么做。
  • 您阅读文档了吗? @硫磺

标签: python arrays numpy matrix numpy-ndarray


【解决方案1】:

正如 cmets 中有人建议的那样,我能够使用 np.where 做到这一点。它看起来像这样:

#preds in the matrix where I want the 0 and 1s
preds_clear = np.where(preds==0, 1, 0)
plt.imshow(preds_clear[0,:,:])

【讨论】:

    猜你喜欢
    • 2021-12-13
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 2013-07-05
    • 2018-08-27
    • 1970-01-01
    相关资源
    最近更新 更多