我要按季节检查一系列月度数据。我有851个月(71年),但只想选择所有年份(3月,4月和5月)的气象春季,其中1月= 0。
我知道我可以例如通过切片data[2::12]
来选择每个三月,但是我将如何一起选择每个三月,四月和五月呢?
例如,如果我有[0,1,2,3,4,5,...,22,23,24]
(24个月),我想返回[2,3,4,14,15,16]
(两年的三月,四月和五月)。
答案 0 :(得分:0)
例如,您可以遍历列表中的所有索引/值,并测试给定项目的索引是否为所选月份的倍数(2、3、4)
res = []
spring_months = [2, 3, 4]
for index, value in enumerate(data):
if index%12 in spring_months:
res.append(value)
答案 1 :(得分:0)
欢迎来到stackoverflow
我会尝试理解列表:
[monthly_data for i, monthly_data in enumerate(all_data) if i%12 in (2,3,4)]
此操作是选择monthly_data
序列中的每个all_data
项目,只要其索引i
除以12的余数为2、3或4
答案 2 :(得分:0)
您可以在嵌套列表理解中使用列表切片:
m = list(range(24))
print([j for i in range(2, len(m), 12) for j in m[i:i+3]])
这将输出:
[2, 3, 4, 14, 15, 16]