首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在python中对2dnumpy数组进行下采样

在python中对2dnumpy数组进行下采样
EN

Stack Overflow用户
提问于 2015-12-11 19:37:42
回答 2查看 55.7K关注 0票数 26

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

特征向量是400x250

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-11 21:02:28

如果下采样的意思是like this,你可以简单地对数组进行切片。以一维为例:

代码语言:javascript
运行
AI代码解释
复制
import numpy as np
a = np.arange(1,11,1)
print(a)
print(a[::3])

最后一行相当于:

代码语言:javascript
运行
AI代码解释
复制
print(a[0:a.size:3])

使用切片表示法start:stop:step

结果:

1 2 3 4 5 6 7 8 9 10

对于二维数组,其思想是相同的:

代码语言:javascript
运行
AI代码解释
复制
b = np.arange(0,100)
c = b.reshape([10,10])
print(c[::3,::3])

这为您提供了两个维度的原始数组中的每三个项目。

或者,如果您只想对单个维度进行下采样:

代码语言:javascript
运行
AI代码解释
复制
d = np.zeros((400,250))
print(d.shape)
e = d[::10,:]
print(e.shape) 

(400,250)

(40,250)

the Numpy manual中还有很多其他的例子

票数 37
EN

Stack Overflow用户

发布于 2018-05-21 18:28:32

我假设你想要删除矩阵的每一行和每一列。下面是一个二维numpy数组的简单示例:

代码语言:javascript
运行
AI代码解释
复制
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)

输出为:

代码语言:javascript
运行
AI代码解释
复制
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]
[[ 0  2]
 [ 8 10]]
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34231244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文