【发布时间】:2015-04-05 19:14:00
【问题描述】:
当我们有一个形状为(a, b, c) 的M 和一个用于索引最后一个数组的索引数组v 时,为什么M[i, :, v] 会生成一个形状为(d, b) 的数组(带有d v) 中的真值数量?如下图:
In [409]: M = zeros((100, 20, 40))
In [410]: val = ones(shape=(40,), dtype="bool")
In [411]: M[0, :, :].shape
Out[411]: (20, 40) # As expected
In [412]: M[0, :, val].shape
Out[412]: (40, 20) # Huh? Why (40, 20), not (20, 40)?
In [413]: M[:, :, val].shape
Out[413]: (100, 20, 40) # s expected again
为什么M[0, :, val] 的形状是(40, 20) 而不是(20, 40)?
【问题讨论】:
-
Boolean Indexing 的文档涵盖了您的示例 - 但我还没有弄清楚它的含义。
-
@BiRico 哎呀,确实。已更正。
-
@wwii 我通读了一遍,但我没有找到他们使用最后一个维度而不是第一个维度来进行布尔索引的示例。
标签: python arrays numpy indexing boolean