Numpy 数组视图语法
Numpy array views syntax
我想我了解 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 上的数组视图,但它并没有真正帮助我。
::10
语法表示每十个元素对整个范围 return 进行采样。所以如果你想 return 1/100 的数据(即每 10 行,每 10 列),你会做:
b = a[::10, ::10]
a[::10]
如果我记得的话 a[::10, ::]
就是 shorthand。
我想我了解 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 上的数组视图,但它并没有真正帮助我。
::10
语法表示每十个元素对整个范围 return 进行采样。所以如果你想 return 1/100 的数据(即每 10 行,每 10 列),你会做:
b = a[::10, ::10]
a[::10]
如果我记得的话 a[::10, ::]
就是 shorthand。