我正在自学python,发现了一个需要向下采样特征向量的问题。我需要一些帮助来理解如何对数组进行下采样。在数组中,每一行用从0
到255
的数字表示一个图像。我想知道你是如何将下采样应用于数组的?我不想使用scikit-learn
,因为我想了解如何应用下采样。如果你也能解释下采样,那就太好了,谢谢。
特征向量是400x250
发布于 2015-12-11 21:02:28
如果下采样的意思是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
结果:
1 2 3 4 5 6 7 8 9 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)
(40,250)
在the Numpy manual中还有很多其他的例子
发布于 2018-05-21 18:28:32
我假设你想要删除矩阵的每一行和每一列。下面是一个二维numpy数组的简单示例:
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)
输出为:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
[[ 0 2]
[ 8 10]]
https://stackoverflow.com/questions/34231244
复制相似问题