【发布时间】:2014-07-02 10:00:11
【问题描述】:
假设我有两个数组,两个数组的值都代表太阳的亮度。第一个数组具有早上测量的值,第二个数组具有晚上测量的值。在实际情况下,我有大约 80 个数组。我将使用 matplotlib 绘制图片。绘制的圆圈将(在两种情况下)大小相同。但是,由于地球的运动,图像的位置会发生一些变化,应该避免这种情况。
>>> array1
[0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]
[0, 0, 1, 3, 1, 0]
[0, 0, 1, 1, 2, 0]
[0, 0, 1, 1, 1, 0]
[0, 0, 0, 0, 0, 0]
>>> array2
[0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]
[0, 0, 1, 2, 1, 0]
[0, 0, 1, 1, 4, 0]
[0, 0, 1, 1, 1, 0]
在上面的示例中,较大的值意味着较亮的点,零值被绘制为黑色空间。数组的大小始终相同。如何将 array2 中的重要值(非零)与 array1 中的值对齐?所以结果应该是这样的。
>>> array2(aligned)
[0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]
[0, 0, 1, 2, 1, 0]
[0, 0, 1, 1, 4, 0]
[0, 0, 1, 1, 1, 0]
[0, 0, 0, 0, 0, 0]
必须这样做才能以有意义的方式对数组进行后处理,例如计算平均值或总和等。注意!查找质心点并进行相应的对齐不起作用,因为边缘可能会在一天中发生变化。
【问题讨论】:
-
4是从哪里来的? -
一个错误,现在编辑:)
-
您可以尝试使用中心思想,但不是在数组本身上,而是在这些数组的布尔掩码上(在这种情况下,质心和中位数可能非常接近)
-
对齐图像是一个完整的研究子领域 ;)
标签: python arrays numpy matplotlib