我想我理解numpy数组视图的基础知识(它不会复制数据,我们基本上指的是与数组相同的数据缓冲区,但具有不同的偏移量等)。然而,我对语法感到困惑。
我明白的是,如果我要这样做:
import numpy as np
a = np.random.random_sample((100,100))
b = a[:10, :10]
然后b
将是a
的前10行和前10列。
我不明白a[::10]
的作用。有人可以解释一下吗?
另外 - 在处理numpy数组时,我还应该知道其他类似的事情吗?
我查看了http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.view.html上的数组视图,但它并没有真正帮助我。
答案 0 :(得分:2)
::10
语法表示对每十个元素返回的整个范围进行采样。因此,如果您想返回1/100的数据(即每10行,每10列),您可以这样做:
b = a[::10, ::10]
如果我记得, a[::10]
只是a[::10, ::]
的简写。