我正在使用多维Numpy数组.我注意到在使用其他索引数组访问这些数组时会出现一些不一致的行为.例如:
import numpy as np
start = np.zeros((7,5,3))
a = start[:,:,np.arange(2)]
b = start[0,:,np.arange(2)]
c = start[0,:,:2]
print 'a:', a.shape
print 'b:', b.shape
print 'c:', c.shape
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我得到了结果:
a: (7, 5, 2)
b: (2, 5)
c: (5, 2)
Run Code Online (Sandbox Code Playgroud)
这让我很困惑.为什么"b"和"c"的尺寸不一样?为什么"b"交换轴顺序,而不是"a"?
由于大量的单元测试,我能够围绕这些不一致的方式设计我的代码,但是理解正在发生的事情将会受到赞赏.
作为参考,我使用Python 2.7.3和Numpy 1.6.2通过MacPorts.