我是自学python并且发现了一个需要对特征向量进行下采样的问题。我需要一些帮助来理解如何对数组进行下采样。在数组中,每一行通过从0
到255
的数字来表示图像。我很想知道你如何对阵列进行下采样?我不想scikit-learn
,因为我想了解如何应用下采样。
如果你能解释下采样,那将是非常棒的谢谢。
特征向量为400x250
答案 0 :(得分:17)
如果使用下采样意味着like this,则可以简单地对数组进行切片。对于一维示例:
print(a[0:a.size:3])
最后一行相当于:
start:stop:step
将切片表示法设为b = np.arange(0,100)
c = b.reshape([10,10])
print(c[::3,::3])
结果:
[1 2 3 4 5 6 7 8 9 10]
[1 4 7 10]
对于2D阵列,想法是一样的:
d = np.zeros((400,250))
print(d.shape)
e = d[::10,:]
print(e.shape)
这为您提供了两个维度中原始数组中的每三个项目。
或者,如果您只想对单个维度进行采样:
TextBlock
中有很多其他例子(400,250)
(40,250)
答案 1 :(得分:0)
我假设您要删除矩阵的所有其他行和列。这是一个简单的2-D numpy数组示例:
end()
输出结果为:
import numpy as np
a=np.arange(0,16).reshape(4,4)
dc=a[:,range(0,a.shape[1],2)]
drdc=dc[range(0,a.shape[0],2),:]
print(a)
print(drdc)