至于a = np.arange(24).reshape(2,3,4)
科隆,无,切片(无)在numpy的数组索引
a[0,:,1]
或a[0,slice(None),1]
输出array([1, 5, 9])
而a[0,None,1]
给出array([[4, 5, 6, 7]])
可能某人解释后者?
至于a = np.arange(24).reshape(2,3,4)
科隆,无,切片(无)在numpy的数组索引
a[0,:,1]
或a[0,slice(None),1]
输出array([1, 5, 9])
而a[0,None,1]
给出array([[4, 5, 6, 7]])
可能某人解释后者?
使用原始None
(不在slice
中)与使用np.newaxis
相同,它只是一个别名。
你的情况:
a[0,None,1]
就像一个[0,np.newaxis,1]
,因此输出slice(None)
就像是 “切片一无所有”,这就是为什么a[0,:,1]
相同a[0,slice(None),1]
。查看numpy的Indexing文档。a[0,None,1]
相同a[0, 1]
但在结果的额外轴线。
的
newaxis
对象可以在所有的限幅操作被用来创建长度之一的 轴线。:const: newaxis
是‘None’
的别名,并且‘None’
可用于替代此结果。
所以a[0,None,1]
相同a[0,np.newaxis,1]
在这种情况下,其中None
放置不相关的,但每None
增加了一个新的轴。
>>> a[0,None, 1]
array([[4, 5, 6, 7]])
>>> a[None,None,0,1]
array([[[4, 5, 6, 7]]])
>>> a[0,np.newaxis,1]
array([[4, 5, 6, 7]])
@GWW不,它不! – Meitham
我的版本2.7.12 | Anaconda 2.3.0(64位)'。我再次确认'a [0,None,1]'。对于那些沮丧的家伙,你能提出一些意见吗? – Lee
你在期待什么? – BrenBarn