python - numpy数组索引中的隐式转置

标签 python numpy indexing

我遇到了一个奇怪的问题:

from numpy import zeros, arange
aa = zeros([1, 3, 10])
aa[0, :, arange(5)].shape

运行这个给我 (5,3) ,但我期待 (3,5) .

但是,运行以下命令给了我 (3,5)正如预期的那样。
aa = zeros([3, 10])
aa[:, arange(5)]

作为我的程序的一部分,这很容易修复,但它完全破坏了我的信念。

我试图搜索已经回答过但不知道要搜索什么的类似问题。

谢谢你,祝中国新年快乐!

最佳答案

这是混合基本索引和高级索引的情况。第一个和最后一个索引是数字,中间是一个切片。它根据 0 选择值和 arange(5) ,并附加 :维度在最后。

aa[0, :, :5].shape

应该产生您期望的 (3,5)。

http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#combining-advanced-and-basic-indexing

Numpy 3D array transposed when indexed in single step vs two steps对比行为
y = x[0, :, mask]
z = x[0, :, :][:, mask]

请务必检查对我的答案的评论,因为这是一个错误并将被修复的论点。

关于python - numpy数组索引中的隐式转置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35306372/

相关文章:

python - NumPy 在数组的每个元素后面添加一个点,我无法删除该点

python - ValueError : list. remove(x): x 不在列表中

python - 如何将提取的音高值保存在 csv 文件中?

python - Numpy:这段代码彼此有何不同?

java - 来自带有日期的 Compass Lucene 查询的空结果集

JavaScript 循环和数组

python - 如何使用 Python 更改 .dbf 文件及其关联的 .mdx 文件?

python - 使用 PIL 生成阴影按钮

python - 如何将 Django 查询集转换为字典以用作模板上下文

python - 如果切片不能解决内存错误,如何合并两个大的 numpy 数组?