在 NumPy 中查找给定月份的工作日数量
Numpy 是 Python 中的一个开源库,用于数值计算、科学计算、数据分析和机器学习应用。该库具有强大的数组方法和工具来执行向量和矩阵运算。
您必须手动安装 NumPy 模块,因为它不是默认 Python 库的组件。可以使用 Python 包管理器 pip 通过执行以下命令来完成此操作 -
pip install numpy
我们将使用 NumPy 的 busday_count() 函数来计算所需的工作日数量。这将计算两个特定日期之间的工作日数(周一至周五)。
语法
numpy.busday_count(startdate, enddate, weekmask, holidays)
返回值 − 整数(天数)
Startdate − 您要计算有效天数的日期范围(含)。这应该是"YYYY-MM-DD"格式的字符串
Enddate − 您要计算有效天数的日期范围(不含)。这也应该是"YYYY-MM-DD"格式的字符串。
Weekmask − 这是一个可选的 string 参数,表示星期几。默认情况下,设置为星期一至星期五。
Holidays − 日期字符串数组,标记为节假日,不计入计数。这也是一个可选参数。
示例 1
以下示例使用 NumPy 和 datetime 模块计算给定月份的星期几(星期一至星期五)。
算法
导入所需的 numpy 库。
将 startdate 和 enddate 参数传递给 busday_count() 函数。
打印编号。工作日数。
import numpy as np # 获取月份的天数 num_days = np.busday_count('2023-02-01', '2023-03-01') print(f"2023 年 2 月有 {num_days} 个工作日")
输出
2023 年 2 月有 20 个工作日
示例 2
以下示例计算 2 月的工作日数,前提是该年是闰年。我们认为 2024 年是闰年。
import numpy as np # 获取闰年月份的天数 num_days = np.busday_count('2024-02-01', '2024-03-01', weekmask = 'Mon Tue Wed Thu Fri') print(f"There are {num_days} weekdays in 2024 February")
输出
There are 21 weekdays in 2024 February
示例 3
以下示例统计除国定假日外的工作日数量。
算法
导入 numpy 库。
创建 1 月份的假日列表。
计算 1 月份的假日数量。工作日并将值存储在 num_days 变量中,并将假期列表与函数一起传递。
打印值。
import numpy as np holidays = ['2023-01-01', '2023-01-26'] # 获取月份中的天数 num_days = np.busday_count('2023-01-01', '2023-02-01', holidays = holidays) print(f"2023 年 1 月的工作日(不包括国定假日)是:{num_days}")
输出
2023 年 1 月的工作日(不包括国定假日)是:21
注意 − 不排除国定假日,工作日数量为 22。由于 1 月 1 日是星期日,因此不算作工作日,因此是 21 个工作日,而不是 (22-2=20) 20 个工作日。
holidays 参数将以字符串或日期列表作为其值。它还会检查指定的国定假日是否是工作日。
结论
busday_count() 函数对于需要计算两个日期之间的工作日的应用程序很有用。它可以有效地用于利息计算、银行的债券期限或甚至股票市场的交易期。它还可以用于项目管理应用程序中,以计算完成任务或项目所需的工作日数。