You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为二维numpy.ndarray添加第三维度并匹配对应年份

解决方案

针对你的需求,这里提供几种实用的实现方式,严格保证年份与对应时间序列的顺序一致性:

1. 使用字典映射(按年份快速索引)

将年份作为键,对应的行时间序列作为值存储,方便后续通过年份直接调取对应序列:

import numpy as np
import random

# 生成完整的年份列表与示例数组
years = list(range(1900, 1950))
values = random.sample(range(10, 100), 50*50) 
arr = np.reshape(values, (50, 50))

# 构建年份-时间序列映射字典
year_series_map = {year: arr[i, :] for i, year in enumerate(years)}

# 示例:获取1900年对应的时间序列
print(year_series_map[1900])

2. 使用元组列表(保留原始顺序)

如果需要严格保留年份与序列的原始顺序,可将每对(年份, 时间序列)存储为元组,再放入列表中:

import numpy as np
import random

years = list(range(1900, 1950))
values = random.sample(range(10, 100), 50*50) 
arr = np.reshape(values, (50, 50))

# 构建顺序化的元组列表
year_series_list = [(year, arr[i, :]) for i, year in enumerate(years)]

# 示例:获取第1个(索引0)年份与对应序列
print(year_series_list[0])

3. 使用Pandas DataFrame(便于数据分析)

如果后续需要对时间序列做统计分析,推荐用Pandas将年份设为索引,每行对应一个时间序列:

import numpy as np
import pandas as pd
import random

years = list(range(1900, 1950))
values = random.sample(range(10, 100), 50*50) 
arr = np.reshape(values, (50, 50))

# 构建DataFrame,年份为索引,每列对应时间序列的一个时间点
df = pd.DataFrame(arr, index=years)

# 示例:获取1949年对应的时间序列
print(df.loc[1949])

注意事项

  • 三种方式均通过enumerate(years)保证了years[i]与arr[i,:]的严格对应,完全符合你的顺序要求。
  • 若你的数组已经是现成的,只需替换示例中生成arr的代码即可直接使用。

内容的提问来源于stack exchange,提问作者user13686580

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 15:25:16