python numpy 数组索引

标签 python arrays numpy

我想我正确理解了 python/numpy 中数组的索引。但今天遇到了一个问题,如下:

我有一个 6 维数组,例如AA.shape = (11,1,9,1,5,7)。 然后我按如下方式使用索引:

B = A[:,0,0,0,[3,4,2],0] 

B.shape = (11,3) 正如预期的那样;

C = A[:,0,0,0,[3,4,2],:] 

C.shape = (11,3,7) 正如预期的那样;

但是当我说:

D = A[:,0,:,0,[3,4,2],0] 
正如我所料,

D.shape应该是(11,9,3),但是,python返回了D.shape = (3, 11, 9) .

我对数组 D 的形状感到非常困惑。

有谁可以给​​我简单解释一下吗? 非常感谢!

最佳答案

https://docs.scipy.org/doc/numpy-1.12.0/reference/arrays.indexing.html#combining-advanced-and-basic-indexing 中所述

A[:,0,:,0,[3,4,2],0]

带有“高级”列表的索引,[3,4,2] 生成大小为 3 的维度。然后添加第 1 维和第 3 维,形成 (3,11,9) 形状。

这种行为有些争议,特别是当其他索引是标量时。当有两个索引列表时,文档中给出的理由更加清晰。

Numpy sub-array assignment with advanced, mixed indexing

关于python numpy 数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44657497/

相关文章:

python - 通过groupby删除异常值pandas?

javascript - 设置嵌套对象属性的更好方法?

python - Numpy 直方图数据 : Why is the length of bins vector longer than the histogram values vector?

python - 用另一个数据框中的匹配 ID 替换 Pandas 中的单元格值

python - 如何在Python中将两个数据框中的两列合并在一起

python - Python 保持套接字事件时遇到问题

arrays - Swift - 检查 Array<AnyObject> 是否包含 UIColor

ios - 如何安全地在UITableView中使用未初始化的数组并显示一个空表

python - 在进程对象之间共享 SciPy 稀疏数组

python-3.x - scipy.misc.imresize()的替代方法