【发布时间】:2012-12-06 21:50:44
【问题描述】:
我有三个适合二维 numpy 数组形式的图像。我想对它们进行中值组合,即生成一个输出数组,其中每个像素是三个输入数组中相同像素的中值。这可以使用 imcombine 在 IRAF 上轻松完成。有没有办法在 Python 上做到这一点,而无需遍历整个数组并获取每个像素的中值?
【问题讨论】:
标签: python multidimensional-array fits
我有三个适合二维 numpy 数组形式的图像。我想对它们进行中值组合,即生成一个输出数组,其中每个像素是三个输入数组中相同像素的中值。这可以使用 imcombine 在 IRAF 上轻松完成。有没有办法在 Python 上做到这一点,而无需遍历整个数组并获取每个像素的中值?
【问题讨论】:
标签: python multidimensional-array fits
最简单的方法是:
numpy.median 传递axis=0 计算中值,沿堆叠维度计算。您实际上是在计算元素中位数。这是一个简单的例子:
>>> import numpy
>>> a = numpy.array([[1,2,3],[4,5,6]])
>>> b = numpy.array([[3,4,5],[6,7,8]])
>>> c = numpy.array([[9,10,11],[12,1,2]])
>>> d = numpy.array([a,b,c])
>>> d
array([[[ 1, 2, 3],
[ 4, 5, 6]],
[[ 3, 4, 5],
[ 6, 7, 8]],
[[ 9, 10, 11],
[12, 1, 2]]])
>>> d.shape
(3, 2, 3)
>>> numpy.median(d, axis=0)
array([[ 3., 4., 5.],
[ 6., 5., 6.]])
【讨论】: