在Python中对一个2D的numpy数组进行下采样

27 人关注

我在自学python,发现了一个问题,需要对一个特征向量进行下采样。 我需要一些帮助来理解如何对一个数组进行下采样。在这个数组中,每一行代表一个图像,其编号从 0 255 。我想知道你是如何对阵列进行下采样的?我不想 scikit-learn ,因为我想了解如何应用下采样。 如果你也能解释下采样,那就太好了,谢谢。

特征向量为400x250

python
arrays
numpy
Neo Streets
Neo Streets
发布于 2015-12-12
1 个回答
Bart
Bart
发布于 2015-12-12
已采纳
0 人赞同

如果你说的下采样是指 like this ,你可以简单地对数组进行切片。对于一个一维的例子。

import numpy as np
a = np.arange(1,11,1)
print(a)
print(a[::3])

最后一行相当于。

print(a[0:a.size:3])

用切分符号表示为start:stop:step

Result:

[ 1 2 3 4 5 6 7 8 9 10]

[ 1 4 7 10]

对于二维阵列来说,想法是一样的。

b = np.arange(0,100)
c = b.reshape([10,10])
print(c[::3,::3])

这样,在两个维度上,你都能得到原始数组中的每三个项目。

或者,如果你只想对一个单一的维度进行向下采样。

d = np.zeros((400,250))
print(d.shape)
e = d[::10,:]
print(e.shape) 
  

(400, 250)