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

如何利用两个NumPy数组生成含日期与小时的动态数组?

解决方案

要实现将日期数组和小时数组按需求组合,你可以借助NumPy的repeat()和tile()函数生成重复的日期序列与平铺的小时序列,再通过column_stack()拼接成目标数组:

步骤1:生成重复的日期序列

使用np.repeat()将每个日期重复24次,确保每个日期对应24个小时:

import numpy as np

a = np.arange(np.datetime64('2024-01-01'), np.datetime64('2024-01-11'))
b = np.linspace(0, 23, 24, dtype=int)  # 将小时转为整数更贴合预期输出

# 每个日期重复24次
dates_repeated = np.repeat(a, 24)
# 将日期转为字符串格式(匹配预期输出的字符串类型)
dates_str = dates_repeated.astype(str)

步骤2:生成平铺的小时序列

使用np.tile()将小时数组重复10次(对应10个日期):

hours_tiled = np.tile(b, len(a))

步骤3:拼接成目标数组

用np.column_stack()将两个序列按列组合,得到240行的结果:

result = np.column_stack((dates_str, hours_tiled))
print(result)

输出示例

输出的核心片段如下:

array([['2024-01-01', '0'],
       ['2024-01-01', '1'],
       ...,
       ['2024-01-10', '22'],
       ['2024-01-10', '23']], dtype='<U11')

另一种简洁实现(用meshgrid)

也可以用np.meshgrid()生成网格后展平拼接,效果完全一致:

dates_grid, hours_grid = np.meshgrid(a, b, indexing='ij')
result = np.column_stack((dates_grid.flatten().astype(str), hours_grid.flatten().astype(int)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 06:35:02