extract_array#
- astropy.nddata.utils.extract_array(array_large, shape, position, mode='partial', fill_value=nan, return_position=False)[源代码]#
从较大的数组中提取给定形状和位置的较小数组。
- 参数:
- array_large :
ndarray
恩达雷 从中提取小数组的数组。
- shape :
int
或tuple
其中PYTHON:int或PYTHON:其元组 提取的数组的形状(对于1D数组,它可以是
int
). 见mode
其他详细信息的关键字。- position : number 或
tuple
其中数字或 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_value
是np.nan
然后ValueError
将被提升。- return_position : bool ,可选可选的布尔
如果
True
,返回position
在返回数组的坐标系中。
- array_large :
- 返回:
实例
我们考虑一个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]])