子采样一个numpy数组?

时间:2014-02-10 18:22:52

标签: python arrays numpy h5py

我对numpy相对较新,但已开始使用它来读取和写入h5文件。我有图像数据,我已经计算了一些区域统计数据,将给定区域中的每个像素值读入h5文件。但是,我有很多像素值(可能是数千万),并希望对这些数据进行二次采样,以便我能够减少数据大小,但保持数据的一般分布。

我想知道是否有一种简单的方法可以对每个数组的第200个值进行采样?

我会提出我已经使用的代码但是我的代码只能读取我现有的数据 - 我完全不知道如何对它进行二次采样,所以到目前为止还没有任何显示。

谢谢

1 个答案:

答案 0 :(得分:8)

您可以使用数组切片:

>>> import numpy as np
>>> a = np.eye(1000)
>>> a[::200, ::200]

array([[ 1.,  0.,  0.,  0.,  0.],
       [ 0.,  1.,  0.,  0.,  0.],
       [ 0.,  0.,  1.,  0.,  0.],
       [ 0.,  0.,  0.,  1.,  0.],
       [ 0.,  0.,  0.,  0.,  1.]])