【发布时间】:2018-08-24 14:11:07
【问题描述】:
很难找到一个清晰的标题,但一个例子会清楚地说明它。 例如,我的输入是:
c = np.full((4, 3, 2), 5)
c[:,:,1] *= 2
ix = np.random.randint(0, 2, (4, 3))
如果ix 是:
array([[1, 0, 1],
[0, 0, 1],
[0, 0, 1],
[1, 1, 0]])
如果想要结果:
array([[10, 5, 10],
[ 5, 5, 10],
[ 5, 5, 10],
[10, 10, 5]])
我的 c 数组可以是任意维度,也可以是我想要采样的维度。
这听起来像插值,但每次我想应用它时我都不愿意构造一个索引数组。有没有办法在 numpy 数组上使用某种索引来做到这一点?还是我必须使用一些插值方法... 速度和内存在这里是一个问题,因为我必须多次这样做,而且数组可能非常大。
感谢您的任何见解!
【问题讨论】:
-
那么,
c.shape[2]总是2? -
不,可以是任意数字...
标签: python arrays numpy indexing