block_reduce#

astropy.nddata.block_reduce(data, block_size, func=<function sum>)[源代码]#

通过对本地块应用函数对数据数组进行降采样。

如果 data 不能完全被整除 block_size 沿着一个给定的轴,然后数据将被修剪(从末端)沿该轴。

参数:
data : array_likeNumpy:ARRAY_LIKE

要重新采样的数据。

block_sizePYTHON:INT或NumPY:ARRAY_LIKE(PYTHON:INT)

沿每个轴的整数块大小。如果 block_size 是标量和 data 有不止一个维度 block_size 将用于每个轴。

func : callable() ,可选Python:Callable(),可选

用于对数据进行下采样的方法。必须是接受4D的Callable ndarray (2D ndarray 输入到 block_reduce 被重塑为4D),并具有 axis 接受元组的关键字。此函数将使用 axis=(2, 3) 并且它应该返回一个二维数组。缺省值为 sum ,它提供块求和(并保存数据和)。

返回:
output : array_likeNumpy:ARRAY_LIKE

重新采样的数据。请注意,取决于输入 func ,则输出数组的数据类型可能与输入数组不匹配。

实例

>>> import numpy as np
>>> from astropy.nddata import block_reduce
>>> data = np.arange(16).reshape(4, 4)
>>> block_reduce(data, 2)  
array([[10, 18],
       [42, 50]])
>>> block_reduce(data, 2, func=np.mean)  
array([[  2.5,   4.5],
       [ 10.5,  12.5]])