如果我有N
-D 数组a
和一维数组indexes
和,那么将值分配给沿给定轴使用这些索引索引的子数组的axis
最短/最简单的方法是什么?a
如果N
和axis
在代码编写时已知/固定,那么我可以轻松地做到
a[:, :, :, indexes, :, :] = b ^^axis pos^^
但是如果N
和axis
仅在运行时才知道,例如在用户输入一些数据之后,该怎么办?
我发现的最简单的形式是这样的:
a[(slice(None),) * (axis % a.ndim) + (indexes,)] = b
但也许有一些内置功能?
有np.put但它似乎只适用于扁平数组,不支持多维。
还有np.take,它适用于多维情况,但与我需要的相反,它读取数据而不是写入,尽管具有我正在寻找的写入语法。你可以这样做:
b = np.take(a, indexes, axis)
那么有相反的吗np.take
?就像np.nd_put
,可以这样做:
np.nd_put(a, indexes, axis, b)
jeck猫
相关分类