[英]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 中。 填充该列的模式是为一个点添加x
和y
值,并将结果的模数 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.