[英]how to group data in bins of 1 degree latitude?
我有一些地理数据(全局)作为数组:
我想说一下风速如何取决于纬度。 因此,我想将数据分类到1度的纬度分类中。
我如何计算哪些风速落在哪个箱中。 我读了有关pandas.groupby的文章。 那是一个选择吗?
numpy函数np.digitize
执行此任务。
下面是一个将每个值分类到bin中的示例:
import numpy as np
import math
# Generate random lats
lats = np.arange(0,10) - 0.5
print("{:20s}: {}".format("Lats", lats))
# Lats : [-0.5 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5]
# Generate bins spaced by 1 from the minus to max values of lats
bins = np.arange(math.floor(lats.min()), math.ceil(lats.max()) +1, 1)
print("{:20s}: {}".format("Bins", bins))
# Bins : [-1 0 1 2 3 4 5 6 7 8 9]
lats_bins = np.digitize(lats, bins)
print("{:20s}: {}".format("Lats in bins", lats_bins))
# Lats in bins : [ 1 2 3 4 5 6 7 8 9 10]
正如@High Performance Mark在评论中所建议的那样,由于您希望以1度拆分箱,因此可以使用floor
提取每个lats
的下限(注意:如果存在负值,此方法将引入负索引箱):
lats_bins_floor = np.floor(lats)
# lats_bins_floor = lats_bins_floor + abs(min(lats_bins_floor))
print("{:20s}: {}".format("Lats in bins (floor)", lats_bins_floor))
# Lats in bins (floor): [-1. 0. 1. 2. 3. 4. 5. 6. 7. 8.]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.