extract_array#

astropy.nddata.utils.extract_array(array_large, shape, position, mode='partial', fill_value=nan, return_position=False)[源代码]#

从较大的数组中提取给定形状和位置的较小数组。

参数:
array_large : ndarray恩达雷

从中提取小数组的数组。

shape : inttuple 其中PYTHON:int或PYTHON:其元组

提取的数组的形状(对于1D数组,它可以是 int ). 见 mode 其他详细信息的关键字。

position : numbertuple 其中数字或 Python :其元组

小阵列相对于大阵列的中心位置。像素坐标应与数组形状的顺序相同。整数位置在像素中心(对于一维阵列,这可以是一个数字)。

mode{'partial','trim','strict'},可选

用于提取小数组的模式。对于 'partial''trim' 模式,小阵列和大阵列的部分重叠就足够了。对于 'strict' 模式时,小数组必须完全包含在大数组中,否则 PartialOverlapError 提高了。在所有模式下,非重叠数组将引发 NoOverlapError . 在 'partial' 模式下,小数组中不与大数组重叠的位置将填充 fill_value . 在 'trim' 模式只返回重叠的元素,因此生成的小数组可能比请求的小 shape .

fill_value : number ,可选数字,可选

如果 mode='partial' ,用于填充提取的小数组中与输入不重叠的像素的值 array_large . fill_value 将被更改为具有相同的 dtype 作为 array_large 数组,只有一个例外。如果 array_large 具有整数类型和 fill_valuenp.nan 然后 ValueError 将被提升。

return_position : bool ,可选可选的布尔

如果 True ,返回 position 在返回数组的坐标系中。

返回:
array_small : ndarray恩达雷

提取的数组。

new_position : tuplePython :元组

如果 return_position 为true,则此元组将包含输入的坐标 position 在坐标系中 array_small . 注意,对于部分重叠的数组, new_position 可能真的在 array_smallarray_small[new_position] 如果任何元素 new_position 是否定的。

实例

我们考虑一个11x10形状的大数组,从中提取一个3x5形状的小数组:

>>> import numpy as np
>>> from astropy.nddata.utils import extract_array
>>> large_array = np.arange(110).reshape((11, 10))
>>> extract_array(large_array, (3, 5), (7, 7))
array([[65, 66, 67, 68, 69],
       [75, 76, 77, 78, 79],
       [85, 86, 87, 88, 89]])