获取多个日期时间对的日期范围

2024-02-15

给定一个形状的日期时间数组(n, 2):

x = np.array([['2017-10-02T00:00:00.000000000', '2017-10-12T00:00:00.000000000']], dtype='datetime64[ns]') 

x有形状(1, 2),但实际上可能是(n, 2), n >= 1。在每对中,第一个日期始终小于(或等于)第二个日期。我想获取每对日期之间的所有日期范围的列表x。这基本上就是我正在做的事情:

np.concatenate([pd.date_range(*y, closed='right') for y in x])

它有效,给予

array(['2017-10-03T00:00:00.000000000', '2017-10-04T00:00:00.000000000',
       '2017-10-05T00:00:00.000000000', '2017-10-06T00:00:00.000000000',
       '2017-10-07T00:00:00.000000000', '2017-10-08T00:00:00.000000000',
       '2017-10-09T00:00:00.000000000', '2017-10-10T00:00:00.000000000',
       '2017-10-11T00:00:00.000000000', '2017-10-12T00:00:00.000000000'], dtype='datetime64[ns]')

但这是相当慢的,因为列表比较 - 它没有完全像我想要的那样矢量化。我想知道是否有更好的方法来获取多对日期的日期范围?

我将根据需要提供尽可能多的澄清。谢谢。


有点复杂...
But

d = np.array(1, dtype='timedelta64[D]')
x = x.astype('datetime64[D]')
deltas = np.diff(x, axis=1) / d
np.concatenate([
    i + np.arange(j + 1) for i, j in zip(x[:, 0], deltas[:, 0].astype(int))
]).astype('datetime64[ns]')

array(['2017-10-02T00:00:00.000000000', '2017-10-03T00:00:00.000000000',
       '2017-10-04T00:00:00.000000000', '2017-10-05T00:00:00.000000000',
       '2017-10-06T00:00:00.000000000', '2017-10-07T00:00:00.000000000',
       '2017-10-08T00:00:00.000000000', '2017-10-09T00:00:00.000000000',
       '2017-10-10T00:00:00.000000000', '2017-10-11T00:00:00.000000000',
       '2017-10-12T00:00:00.000000000'], dtype='datetime64[ns]')

怎么运行的

  • d代表一天
  • x变成没有时间戳的日期
  • diff让我知道相差的天数...但是在timedelta space
  • 我除以我的d这也是在timedelta空间和维度消失了……留给我float我投射到int
  • 当我添加对的第一列时x[:, 0]对于一个整数数组,我得到一个添加 1 个单位的广播,无论维度是什么x,即datetime64[D]。所以我要添加一天。

源自/受 @hpaulj 启发
如果他们发布答案就会删除

d = np.array(1, dtype='timedelta64[D]')
np.concatenate([np.arange(row[0], row[1] + 1, d) for row in x])

array(['2017-10-02T00:00:00.000000000', '2017-10-03T00:00:00.000000000',
       '2017-10-04T00:00:00.000000000', '2017-10-05T00:00:00.000000000',
       '2017-10-06T00:00:00.000000000', '2017-10-07T00:00:00.000000000',
       '2017-10-08T00:00:00.000000000', '2017-10-09T00:00:00.000000000',
       '2017-10-10T00:00:00.000000000', '2017-10-11T00:00:00.000000000',
       '2017-10-12T00:00:00.000000000'], dtype='datetime64[ns]')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取多个日期时间对的日期范围 的相关文章

  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • 在循环中每次迭代开始时将变量重新分配给原始值(在循环之前定义)

    在Python中 你使用 在每次迭代开始时将变量重新分配给原始值 在循环之前定义 时 也就是说 original 1D o o o for i in range 0 3 new original 1D revert back to orig
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • 欧洲中部时间 14 日 3 月 30 日星期五 00:00:00 至 日/月/年

    我尝试解析格式日期Fri Mar 30 00 00 00 CET 14至 日 月 年 这是我的代码 SimpleDateFormat formatter new SimpleDateFormat dd MM yyyy System out
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数

随机推荐

  • Laravel 默认 auth 模块翻译

    我已经生成了默认的 Laravel auth 模块 在模块刀片的各处 我都看到双下划线 假设翻译即将完成的函数 例如 li a class nav link href Login a li 我的问题 翻译文件在哪里 如果我创建一个 我应该把
  • Django 表单下拉字段中的占位符

    我对 django 形式的下拉字段有一个小问题 我想添加到此字段占位符 或不作为占位符的第一个选项 和一些其他内容 如无标签 类等 我写了这样的东西 在我的forms py但现在我的表单已损坏 不要将值保存到数据库中 from models
  • noexcept 在派生类中的用法

    我在使用时遇到问题noexcept派生类上的说明符 更准确地说 当父类是抽象类时 具有protected构造函数 以下是我声明类的方式的示例 With a public基类中的构造函数 一切正常 与相同的代码protected并且派生类不再
  • 协程中的热流和冷流是什么以及它们之间的区别?

    我正在掌握 Kotlin 协程并试图弄清楚 1 什么是热流和冷流 2 它们之间的主要区别是什么 3 什么时候使用每一个 冷流在开始收集值之前不会开始产生值 另一方面 热流立即开始产生值 我建议阅读以下内容以了解热蒸汽和冷蒸汽的使用 http
  • 如何删除 Windows Phone 8.1 应用程序中的动态磁贴标题?

    我正在 BackgroundTask 中使用 TileWide310x150Image 模板构建一个宽动态图块 它应该只显示宽图像 不显示文本或其他内容 这是我正在使用的模板
  • 如何预分配和初始化 `std::basic_string` 内的字符序列?

    我想知道如何在普通 C 字符串中预分配和初始化字符序列 提出这个问题的场合是查询 Windows 注册表中的值 看这个答案 https stackoverflow com a 16304707 1794538一些示例代码 问题在于系统调用写
  • 如何以编程方式对黑/白 UIImageView 进行着色?

    我有一组黑白图像 如下所示 如果我没记错的话 有某种方法可以设置 UIImage 的混合或遮罩属性以将其与背景 UIView 混合 在这种情况下 我想将该图像的颜色更改为红色以表示生命值 如何以编程方式更改此 UIImage 的颜色 我知道
  • 用于多行文本的 Java 注释实用程序

    WRT 多行 Java 字符串的任何未来计划 https stackoverflow com questions 11659225 any future plans for multiline java string 编写一个执行以下操作的
  • Python文件下载

    我遇到了问题 不确定这是否可能 所以是否有人可以指出我正确的方向 我需要从网页打开一个文件 在 Excel 中打开它并保存该文件 我在网站上遇到的问题是文件名有一个文件名 不是活动链接 然后它会有一个 下载 按钮 该按钮不特定于我需要下载的
  • 为什么 .tfignore 根本不起作用?

    我按照中的说明进行操作这篇微软文章 https www visualstudio com docs tfvc add files server customize which files are ignored by version con
  • Oracle:将 IPv4 地址转换为数字?

    如何将点十进制格式的 IPv4 地址转换为数字 例如 地址39 255 2 51应转换为4026466867 使用 regexp substr 提取地址的四个八位字节 通过将八位位组移回其原始位置来重构该值 正则表达式可能相对昂贵 因此如果
  • 如何在一个EC2实例上运行多个应用程序?

    这可能与这个问题有关 如何在一个 EC2 实例上运行多个应用程序 https stackoverflow com questions 16549026 how to run more than one app on one instance
  • Gradle 包装器标签不匹配错误

    我正在尝试使用 gradle 及其包装器手动配置 Android 项目 但我总是遇到相同的错误 我可以生成gradlew脚本如下build gadle file buildscript repositories jcenter depend
  • sqlite3 运行 sql - 选择所有带有 PUA 字符的

    我怎样才能运行 SELECT FROM 表名 其中列包含 PUA 字符 PUA https en wikipedia org wiki Private Use Areas 私人使用区域 在 Unicode 中 专用区域 PUA 是一系列代码
  • 在AngularJS中如何使用datalist

    div div
  • 使 tkinter 窗口在全屏应用程序之上绘制

    我想知道是否有一种方法可以在全屏应用程序上绘制 tkinter 窗口 到目前为止我有这个 from tkinter import MAIN WINDOW root Tk root title Test Title root geometry
  • 如何将输出分配给 shell 脚本变量?

    如何将此结果分配给 shell 变量 Input echo 1 1 bc l Output 2 Attempts 没用 bin sh a echo 1 1 bc l echo a 您正在寻找称为命令替换的 shell 功能 cmd 替换有
  • jarsigner“只能指定一个别名”

    C Program Files Java jdk1 7 0 01 bin gt jarsigner verbose sigalg MD5withRSA digestalg SHA1 keystore Cartoons keystore Ca
  • Git如何进行分布式源代码管理?

    我是一位具有 UNIX SCCS 和 Microsoft Visual SourceSafe 经验的 Git 新手 我刚刚学习 Git 它似乎有一个巨大而痛苦的学习曲线 我已经看到 Git 删除了所有我未提交的数据文件 这让我很担心 实用程
  • 获取多个日期时间对的日期范围

    给定一个形状的日期时间数组 n 2 x np array 2017 10 02T00 00 00 000000000 2017 10 12T00 00 00 000000000 dtype datetime64 ns x有形状 1 2 但实