Numpy:如何将数组置换为更大数组的索引?

计算科学 Python 麻木的
2021-12-25 16:10:34

我有一个长度为 L 的数组,其中包含 N 个零和 LN 非零值。我有另一个长度为 N 的数组。我想将较短数组的值放入较长数组的零位置,使它们保持有序。例如,如果我有,

L=[1,2,3,0,0,4,5,6,0]
N=[10,0,20]
我想要,
L=[1,2,3,10,0,4,5,6,20]
我会重复这样做L和许多不同的N(所有相同的长度)。使用 Numpy 完成此任务的最佳方法是什么?

1个回答
L[L==0]=N

除非我在你的问题中遗漏了一些东西。在 numpy 中,主要约束是您希望尽可能多地使用内置数组对象。但是获取一个数组的子集,索引由一个逻辑数组给出,是一个内置的操作,所以我希望这已经足够了。这会就地修改 L,因此您需要为每个新 N 创建一个副本。