Rya*_*yan 2 python indexing numpy
我有一个大小的numpy数组28x28x60000.请注意以下事项:
>>> X.shape
(28, 28, 60000)
>>> X[:][:][0].shape
(28, 60000)
Run Code Online (Sandbox Code Playgroud)
不应该X[:][:][0]是一个大小的数组28x28?我们包括前两个维度(每个28个)的每个组件,但只包括第三个维度的第0个条目.
这里发生了什么?
你切错了.Slice X[:]返回原始数组的副本.因此,您的切片可以被解释为X的第一个副本,然后是X的另一个副本,然后获得具有28x60000形状的第一个元素.所以你需要打电话X[:,:,0].例:
import numpy as np
X = np.random.randn(28,28,60000)
In [257]: X[:,:,0].shape
Out[257]: (28, 28)
Run Code Online (Sandbox Code Playgroud)
你可以比较你X[:]和你的X[:][:]陈述all
In [261]: (X[:] == X[:][:]).all()
Out[261]: True
Run Code Online (Sandbox Code Playgroud)