【发布时间】:2021-11-24 12:38:25
【问题描述】:
我有一个 numpy 数组,其中包含许多行,大致如下:
0, 50, 50, 2, 50, 1, 50, 99, 50, 50
50, 2, 1, 50, 50, 50, 98, 50, 50, 50
0, 50, 50, 98, 50, 1, 50, 50, 50, 50
0, 50, 50, 50, 50, 99, 50, 50, 2, 50
2, 50, 50, 0, 98, 1, 50, 50, 50, 50
给我一个变量n
- 从 0 到 n 的每个数字,其中一个可能缺失。在上面的示例中,n=2。
- 可能是 98,如果缺少数字,它将代替缺少的数字。
- 可能是 99,如果缺少数字并且还没有 98,它将代替缺少的数字。
- 许多 50 年代。
我想要的是一个数组,其中包含第一行中所有 0 的索引、第二行中所有 1 的索引、第三行中所有 2 的索引等。例如,我想要的输出是这样的:
0, 6, 0, 0, 3
5, 2, 5, 5, 5
3, 1, 3, 8, 0
您可能已经注意到一个问题:有时,恰好其中一个数字被替换为 98 或 99。编写一个 for 循环来确定哪个数字(如果有)被替换并使用它非常容易获取索引数组。
有没有办法用 numpy 做到这一点?
【问题讨论】:
-
我读了 3 遍我不知道你在做什么
-
@barker,基本上我试图获取每行中 0 的索引,然后是每行中 1 的索引,等等。问题是,可能没有 1 in某行,在这种情况下,我需要查看 98/99 的索引。
-
这与您想要的输出不匹配,第一个索引行 0,6,0,0,3 不符合该逻辑
-
为什么不呢?在第一行中,0 在索引 0 处。在第二行中,0 在索引 6 处。在第三行中,在索引 0 处。在第四行中,在索引 0 处。在第五行中,它是索引 3.
标签: python arrays numpy multidimensional-array indexing