【发布时间】:2018-12-13 01:58:27
【问题描述】:
我对最后一个表达式的结果感到惊讶?
>>> from numpy import array, arange
>>> a = arange(12).reshape(3,4)
>>> b1 = array([False,True,True]) # first dim selection
>>> b2 = array([True,False,True,False]) # second dim selection
>>>
>>> a[b1,:] # selecting rows
array([[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>>
>>> a[b1] # same thing
array([[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>>
>>> a[:,b2] # selecting columns
array([[ 0, 2],
[ 4, 6],
[ 8, 10]])
>>>
>>> a[b1,b2] # a weird thing to do
array([ 4, 10])
我预计:
array([[ 4, 6],
[ 8, 10]])
你有什么解释为什么会这样吗?
【问题讨论】:
-
a[b1, :][:, b2]会产生您预期的输出。并查看NumPy User Guide 和NumPy Reference 中的索引文档。 -
是的,我测试过: >>> a[:,b2][b1] array([[ 4, 6], [ 8, 10]]) 和 >>> a[b1 ][:,b2] 数组([[ 4, 6], [ 8, 10]])
标签: python arrays numpy indexing