繁体   English   中英

如何在网格中对每个其他值进行采样,同时确保它交替每一行以创建偏移量?

[英]How can I sample every other value in a grid while ensuring it alternates each row to create an offset?

我想采用一个均匀间隔的点网格并每隔一个值进行采样,同时确保每一行都与前一行偏移。 当网格中的x点数为奇数时,我已经能够相当容易地做到这一点,但当它们是偶数时却不行。

作为示例,原始网格如下所示:

import pandas as pd
import numpy as np

x = np.array(range(1, 6))
y = np.array(range(1, 6))
df = pd.DataFrame(np.array(np.meshgrid(x, y, )).T.reshape(-1, 2), columns= {'x', 'y'})
df.plot.scatter('x', 'y')

在此处输入图像描述

我用过

df_2 = df[::2]
df_2.plot.scatter('x', 'y')

在此处输入图像描述

但是当x值的数量是偶数时,我无法弄清楚如何使它工作。

作为背景,我是 python(来自 R)的新手,我正在尝试以均匀的纵向间隔对地理空间数据进行采样,并针对纬度的每次变化进行偏移以实现均匀的空间覆盖。 很难保证每个点网格都会以奇数个x值开始,因为它们已经是空间数据的随机样本。

我们可以创建一个新的地图/布尔列来说明该点是否应包含在 plot 中。 填充该列的模式是为一个点添加xy值,并将结果的模数 2 并将其与0进行比较。

然后,当我们 plot 时,我们将 DF 限制为新的映射/布尔列。

import pandas as pd
import numpy as np

x = np.array(range(1, 6))
y = np.array(range(1, 6))
df = pd.DataFrame(np.array(np.meshgrid(x, y, )).T.reshape(-1, 2), columns= {'x', 'y'})    
df['includepoint'] = (df.y  + df.x) % 2 == 0   
df[df.includepoint].plot.scatter('x', 'y')

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM