【发布时间】:2018-05-28 20:29:43
【问题描述】:
假设我有一个numpy 数组,它在两种项目类型的 ID 之间进行映射:
[[1, 12],
[1, 13],
[1, 14],
[2, 13],
[2, 14],
[3, 11]]
我想重新排列这个数组,使新数组中的每一行代表与原始数组中相同 ID 匹配的所有项目。在这里,每一列将代表原始数组中的一个映射,直到对新数组中的列数有一个指定的形状限制。如果我们想从上面的数组中获得这个结果,确保我们只有 2 列,我们将获得:
[[12, 13], #Represents 1 - 14 was not kept as only 2 columns are allowed
[13, 14], #Represents 2
[11, 0]] #Represents 3 - 0 was used as padding since 3 did not have 2 mappings
这里最简单的方法是使用 for 循环来填充新数组,因为它遇到原始数组中的行。使用numpy 的功能是否有更有效的方法来完成此任务?
【问题讨论】:
-
与stackoverflow.com/questions/38013778/… 非常相似的问题,但不完全相同。