我正在自学python,发现了一个需要对特征向量进行降采样的问题。我需要一些帮助来理解如何对数组进行降采样。在数组中,每行通过从0到255的数字来表示一个图像。我想知道你如何对数组应用降采样?我不想使用scikit-learn,因为我想了解如何应用降采样。如果你也能解释下采样,那就太棒了,谢谢。特征向量是400 × 250
0
255
scikit-learn
rdlzhqv91#
如果下采样意味着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][ 1 4 7 10]对于2D阵列,其思想是相同的:
start:stop:step
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,二百五十页)(40,二百五十页)在the Numpy manual中还有许多其他示例
pkwftd7m2#
从skimage.measure导入block_reduce新矩阵=块缩减(下采样矩阵,块大小=(m,n),函数=np.平均值/np.最大值/..)
bsxbgnwa3#
from skimage.measure import block_reduce b = block_reduce(matrix, block_size=(m, n), func=np.mean/np.max/..)
3条答案
按热度按时间rdlzhqv91#
如果下采样意味着like this,您可以简单地对数组进行切片。
最后一行相当于:
切片符号为
start:stop:step
结果:
[ 1 2 3 4 5 6 7 8 9 10]
[ 1 4 7 10]
对于2D阵列,其思想是相同的:
这将在两个维度上为您提供原始数组中的每三个项目。
或者,如果只想向下取样单个维:
(400,二百五十页)
(40,二百五十页)
在the Numpy manual中还有许多其他示例
pkwftd7m2#
从skimage.measure导入block_reduce
新矩阵=块缩减(下采样矩阵,块大小=(m,n),函数=np.平均值/np.最大值/..)
bsxbgnwa3#