python - 对 numpy 数组进行子采样/平均

标签 python arrays numpy subsampling

我有一个带有 float 的 numpy 数组。

我想要的(如果它还不存在的话)是一个函数,它给我一个新数组,该数组包含给定数组中每个 x 点的平均值,例如子采样(与插值相反(?)) .

例如sub_sample(numpy.array([1, 2, 3, 4, 5, 6]), 2) 给出 [1.5, 3.5, 5.5]

例如可以去除剩菜,例如sub_sample(numpy.array([1, 2, 3, 4, 5]), 2) 给出 [1.5, 3.5]

提前致谢。

最佳答案

使用 NumPy 例程你可以尝试类似的东西

import numpy

x = numpy.array([1, 2, 3, 4, 5, 6])

numpy.mean(x.reshape(-1, 2), 1) # Prints array([ 1.5,  3.5,  5.5])

并且只需将 reshape 调用中的 2 替换为您想要平均的项目数。

编辑:假设n 分成x 的长度。如果要将其变成通用函数,则需要包括一些检查。也许是这样的:

def average(arr, n):
    end =  n * int(len(arr)/n)
    return numpy.mean(arr[:end].reshape(-1, n), 1)

这个功能在行动:

>>> x = numpy.array([1, 2, 3, 4, 5, 6])
>>> average(x, 2)
array([ 1.5,  3.5,  5.5])

>>> x = numpy.array([1, 2, 3, 4, 5, 6, 7])
>>> average(x, 2)
array([ 1.5,  3.5,  5.5])

关于python - 对 numpy 数组进行子采样/平均,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10847660/

相关文章:

python - 在 WordPress 中运行 Django 项目(使用 Apache 和 mod_wsgi 在 WordPress 的子 URL 上)

python - Docker权限错误: [Errno 13] Permission denied: 'tmp'

c++ - 在类成员函数中存储一个字符串数组并返回它

python - 堆积柱

python - 如何在 django admin 中创建一个自动填充和自动递增的字段

常量数组和内存管理

javascript - 如何检查对象的重复数组,然后将 bool 值与OR ||合并算子

python - 使用 pip 在 Fedora 19 上安装 Numpy

python - 使用 Python 共享内存的段错误

python - 如何伸缩 numpy 数组的列?