相关疑难解决方法(0)

多维度的Numpy花式索引

假设我有一个大小为nxmxk的numpy数组A和另一个大小为nxm且索引从1到k的数组B. 我想使用B中这个地方给出的索引访问A的每个nxm切片,给我一个大小为nx m的数组.

编辑:这显然不是我想要的![[我可以这样使用take:

A.take(B) ]]结束编辑

这可以通过花式索引来实现吗?我原以为A[B]会给出相同的结果,但是会产生一个大小为nxmxmxk的数组(我真的不明白).

我不想使用的原因take是我希望能够分配这个部分,比如

A[B] = 1

到目前为止,唯一可行的解​​决方案是

A.reshape(-1, k)[np.arange(n * m), B.ravel()].reshape(n, m)

但肯定有一个更简单的方法吗?

python arrays indexing numpy

5
推荐指数
1
解决办法
2243
查看次数

如何根据指数给定沿给定轴的元素?

我有一个3D数组,我需要在最后一个轴上"挤"它,这样我得到一个2D数组.我需要以下面的方式做到这一点.对于前两个维度的索引的每个值,我知道应从中获取值的第三维的索引值.

例如,我知道,如果i1 == 2i2 == 7i3 == 11.这意味着out[2,7] = inp[2,7,11].从前两个维度到第三个维度的映射在另一个2D阵列中给出.换句话说,我有一个数组,其中2,7我的位置11作为一个值.

所以,我的问题是如何组合这两个数组(3D和2D)来获得输出数组(2D).

python arrays numpy

5
推荐指数
1
解决办法
184
查看次数

标签 统计

arrays ×2

numpy ×2

python ×2

indexing ×1