如果您想了解如何在python中计算任何给定年份每个季度的周数和如何在python中计算任何给定年份每个季度的周数的知识,那么本篇文章将是您的不二之选。我们将深入剖析如何在python中计算任何给定年
如果您想了解如何在python中计算任何给定年份每个季度的周数和如何在python中计算任何给定年份每个季度的周数的知识,那么本篇文章将是您的不二之选。我们将深入剖析如何在python中计算任何给定年份每个季度的周数的各个方面,并为您解答如何在python中计算任何给定年份每个季度的周数的疑在这篇文章中,我们将为您介绍如何在python中计算任何给定年份每个季度的周数的相关知识,同时也会详细的解释如何在python中计算任何给定年份每个季度的周数的运用方法,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- 如何在python中计算任何给定年份每个季度的周数(如何在python中计算任何给定年份每个季度的周数)
- 使用NumPy在Python中计算给定两个向量的外积
- 使用Python中的Pandas显示给定年份的所有星期日
- 在macOS上进行Bash – 获取给定年份每个星期六的日期列表
- 在Python中的数据框中获取给定年份和星期数的星期结束日期
如何在python中计算任何给定年份每个季度的周数(如何在python中计算任何给定年份每个季度的周数)
如何解决如何在python中计算任何给定年份每个季度的周数?
def first_day_quarter_f(our_date):
quarter = our_date.quarter
quarter_start_date= datetime(our_date.year,3* quarter -2,1)
return quarter_start_date
def days_in_between_f(our_date):
quarter_start_date=first_day_quarter_f(our_date)
delta=our_date-quarter_start_date
days=delta.days+1
return days
def first_day_name_f(our_date):
quarter_start_date=first_day_quarter_f(our_date)
first_day=quarter_start_date.strftime("%A")
return first_day
def week_f(our_date):
days=days_in_between_f(our_date)
first_day=first_day_name_f(our_date)
if first_day==''Monday'':
if days<7:
week=1
else:
if days%7==0:
week=math.floor(days/7)
else:
week=math.floor(days/7)+1
elif first_day==''Tuesday'':
if days<6:
week=1
else:
days=days-6
if days%7==0:
week=1+math.floor(days/7)
else:
week=1+math.floor(days/7)+1
elif first_day==''Wednesday'':
if days<5:
week=1
else:
days=days-5
if days%7==0:
week=1+math.floor(days/7)
else:
week=1+math.floor(days/7)+1
elif first_day==''Thursday'':
if days<4:
week=1
else:
days=days-4
if days%7==0:
week=1+math.floor(days/7)
else:
week=1+math.floor(days/7)+1
elif first_day==''Friday'':
if days<3:
week=1
else:
days=days-3
if days%7==0:
week=1+math.floor(days/7)
else:
week=1+math.floor(days/7)+1
elif first_day==''Saturday'':
if days<3:
week=1
else:
days=days-2
if days%7==0:
week=1+math.floor(days/7)
else:
week=1+math.floor(days/7)+1
else:
if days<3:
week=1
else:
days=days-1
if days%7==0:
week=1+math.floor(days/7)
else:
week=1+math.floor(days/7)+1
return week
我尝试获取季度的第一天,然后计算给定日期与季度第一天之间的差异,然后根据季度第一天的名称计算周数。有没有其他方法可以做到这一点?我们需要 20-Aug-2020 是在那个季度的哪一周?答案应该是weekno-8。
解决方法
from datetime import datetime
import math
date_format = "%m/%d/%Y"
a = datetime.strptime(''1/1/2020'',date_format) # First day in the year,1st January 2020
b = datetime.strptime(''8/20/2020'',date_format) # Your date 20th August 2020
delta = b – a
num_days = delta.days
num_of_week = num_days / 7
week_in_quarter = num_of_week % 13
print(math.ceil(week_in_quarter))
输出:
8
使用NumPy在Python中计算给定两个向量的外积
两个向量的外积是向量 A 的每个元素与向量 B 的每个元素相乘得到的矩阵。向量 a 和 b 的外积为 a ⊗ b。以下是计算外积的数学公式。
a ⊗ b = [a[0] * b, a[1] * b, ..., a[m-1] * b]
哪里,
a, b 是向量。
立即学习“Python免费学习笔记(深入)”;
立即学习“Python免费学习笔记(深入)”;
表示两个向量的逐元素乘法。
外积的输出是一个矩阵,其中i和j是矩阵的元素,其中第i行是通过将向量‘a’的第i个元素乘以向量‘b’的第i个元素得到的向量。
使用Numpy计算外积
在Numpy中,我们有一个名为outer()的函数,用于计算两个向量的外积。
语法
下面是outer()函数的语法 -
np.outer(array1, array2)
哪里,
外部是函数。
array1和array2是输入数组。
示例
在下面的示例中,我们尝试使用outer()函数计算两个numpy数组的外积 -
import numpy as np a = np.array([34,23,90,34]) b = np.array([90,34,43,23]) print("The input arrays:",a,b) outer_product = np.outer(a,b) print("The Outer product of the given input arrays:",outer_product)
输出
The input arrays: [34 23 90 34] [90 34 43 23] The Outer product of the given input arrays: [[3060 1156 1462 782] [2070 782 989 529] [8100 3060 3870 2070] [3060 1156 1462 782]]
示例
让我们看另一个例子,其中我们使用outer()函数计算二维数组的外积 -
import numpy as np a = np.array([[34,23],[90,34]]) b = np.array([[90,34],[43,23]]) print("The input arrays:",a,b) outer_product = np.outer(a,b) print("The Outer product of the given input arrays:",outer_product)
输出
以下是两个数组的外积的输出。
The input arrays: [[34 23] [90 34]] [[90 34] [43 23]] The Outer product of the given input arrays: [[3060 1156 1462 782] [2070 782 989 529] [8100 3060 3870 2070] [3060 1156 1462 782]]
示例
现在,让我们尝试计算 3D 数组的外积。
import numpy as np a = np.array([[[34,23],[90,34]],[[12,5],[14,5]]]) b = np.array([[[90,34],[43,23]],[[1,22],[7,2]]]) print("The input arrays:",a,b) outer_product = np.outer(a,b) print("The Outer product of the given input arrays:",outer_product)
输出
The input arrays: [[[34 23] [90 34]] [[12 5] [14 5]]] [[[90 34] [43 23]] [[ 1 22] [ 7 2]]] The Outer product of the given input arrays: [[3060 1156 1462 782 34 748 238 68] [2070 782 989 529 23 506 161 46] [8100 3060 3870 2070 90 1980 630 180] [3060 1156 1462 782 34 748 238 68] [1080 408 516 276 12 264 84 24] [ 450 170 215 115 5 110 35 10] [1260 476 602 322 14 308 98 28] [ 450 170 215 115 5 110 35 10]]
以上就是使用NumPy在Python中计算给定两个向量的外积的详细内容,更多请关注php中文网其它相关文章!
使用Python中的Pandas显示给定年份的所有星期日
Pandas 是一个强大的 Python 库,用于数据处理和分析。Pandas 的一个关键特性是其有效处理日期和时间数据的能力。在本文中,我们将展示如何使用 Pandas 来显示给定年份的所有星期日。
在本文中,我们将探讨如何使用Pandas,一个在Python中广受欢迎的数据操作库,来显示给定年份的所有星期日。我们将逐步介绍提取一年中的星期日并以可读格式显示它们的过程。
先决条件
在开始之前,请确保您的计算机上已安装Pandas。您可以通过在终端中运行以下命令来安装它 -
pip install pandas Getting Started
在Python中使用Pandas
首先,我们将开始导入Pandas库并创建一个Pandas DataFrame来存储一年中的日期。我们将使用date_range函数生成一年的日期范围。以下是生成2023年日期范围的代码 −
立即学习“Python免费学习笔记(深入)”;
点击下载“修复打印机驱动工具”;
import pandas as pd year = 2023 start_date = pd.to_datetime(f''{year}-01-01'') end_date = pd.to_datetime(f''{year}-12-31'') dates = pd.date_range(start_date, end_date)
我们使用pd.to_datetime函数创建了一个start_date和一个end_date对象。使用pd.date_range函数创建了dates变量,该函数从start_date到end_date生成了一系列日期。
提取星期日
要从日期范围中提取星期日,我们将使用Pandas提供的dt访问器。dt访问器提供了各种方法来操作Pandas DataFrame的日期和时间值。我们将使用dt访问器的day_name方法来获取dates DataFrame中每个日期的星期几名称。以下是提取星期日的代码:
sundays = dates[dates.dt.day_name() == ''Sunday'']
dates.dt.day_name()方法返回dates DataFrame中每个日期的星期几名称。然后,我们对dates DataFrame进行过滤,只保留星期日的行。
显示星期天
为了以可读的格式显示星期日,我们将使用dt访问器的strftime方法。strftime方法用于格式化Pandas DataFrame的日期和时间值。以下是显示星期日的代码:
for sunday in sundays: print(sunday.strftime(''%Y-%m-%d''))
strftime(''%Y-%m-%d'')方法将日期格式化为YYYY-MM-DD格式。然后,我们通过sundays DataFrame循环,并以所需的格式打印每个星期日。
Final Code
的中文翻译为:最终代码
这是显示2023年所有星期日的完整代码 −
import pandas as pd year = 2023 start_date = pd.to_datetime(f''{year}-01-01'') end_date = pd.to_datetime(f''{year}-12-31'') dates = pd.date_range(start_date, end_date) sundays = dates[dates.dt.day_name() == ''Sunday''] for sunday in sundays: print(sunday.strftime(''%Y-%m-%d''))
输出
DatetimeIndex([''2023-01-01'', ''2023-01-08'', ''2023-01-15'', ''2023-01-22'', ''2023-01-29'', ''2023-02-05'', ''2023-02-12'', ''2023-02-19'', ''2023-02-26'', ''2023-03-05'', ''2023-03-12'', ''2023-03-19'', ''2023-03-26'', ''2023-04-02'', ''2023-04-09'', ''2023-04-16'', ''2023-04-23'', ''2023-04-30'', ''2023-05-07'', ''2023-05-14'', ''2023-05-21'', ''2023-05-28'', ''2023-06-04'', ''2023-06-11'', ''2023-06-18'', ''2023-06-25'', ''2023-07-02'', ''2023-07-09'', ''2023-07-16'', ''2023-07-23'', ''2023-07-30'', ''2023-08-06'', ''2023-08-13'', ''2023-08-20'', ''2023-08-27'', ''2023-09-03'', ''2023-09-10'', ''2023-09-17'', ''2023-09-24'', ''2023-10-01'', ''2023-10-08'', ''2023-10-15'', ''2023-10-22'', ''2023-10-29'', ''2023-11-05'', ''2023-11-12'', ''2023-11-19'', ''2023-11-26'', ''2023-12-03'', ''2023-12-10'', ''2023-12-17'', ''2023-12-24'', ''2023-12-31''], dtype=''datetime64[ns]'', freq=None)>
使用Pandas显示给定年份的所有星期日
要显示给定年份的所有星期日,我们首先需要创建一个Pandas DataFrame,其日期范围跨越整个年份。然后,我们可以过滤此DataFrame,只包括星期日。
这是完成此任务的Python代码。在这里。让我们逐步分解代码−
我们使用 import 语句导入 Pandas 库。
我们使用pd.date_range()函数创建一个跨越整个年份的日期范围。我们分别使用start和end参数指定开始和结束日期。我们将''2022''替换为所需的年份。
我们通过使用日期范围的 .weekday 属性来筛选只包括星期日的日期范围,该属性将星期几作为整数返回(星期一 = 0,星期二 = 1,等等)。星期日用整数6表示。
我们将筛选后的日期范围存储在一个名为sundays的变量中。
最后,我们通过在 sundays 变量上调用 print() 函数来打印星期日的列表。
import pandas as pd # Replace ''2022'' with the desired year date_range = pd.date_range(start=''1/1/2022'', end=''12/31/2022'') # Filter the date range to only include Sundays sundays = date_range[date_range.weekday == 6] # Print the list of Sundays print(sundays)
输出
当您运行上述代码时,您应该看到给定年份中所有星期日的列表−
DatetimeIndex([''2022-01-02'', ''2022-01-09'', ''2022-01-16'', ''2022-01-23'', ''2022-01-30'', ''2022-02-06'', ''2022-02-13'', ''2022-02-20'', ''2022-02-27'', ''2022-03-06'', ''2022-03-13'', ''2022-03-20'', ''2022-03-27'', ''2022-04-03'', ''2022-04-10'', ''2022-04-17'', ''2022-04-24'', ''2022-05-01'', ''2022-05-08'', ''2022-05-15'', ''2022-05-22'', ''2022-05-29'', ''2022-06-05'', ''2022-06-12'', ''2022-06-19'', ''2022-06-26'', ''2022-07-03'', ''2022-07-10'', ''2022-07-17'', ''2022-07-24'', ''2022-07-31'', ''2022-08-07'', ''2022-08-14'', ''2022-08-21'', ''2022-08-28'', ''2022-09-04'', ''2022-09-11'', ''2022-09-18'', ''2022-09-25'', ''2022-10-02'', ''2022-10-09'', ''2022-10-16'', ''2022-10-23'', ''2022-10-30'', ''2022-11-06'', ''2022-11-13'', ''2022-11-20'', ''2022-11-27'', ''2022-12-04'', ''2022-12-11'', ''2022-12-18'', ''2022-12-25''], dtype=''datetime64[ns]'', freq=None)
结论
在本文中,我们探讨了如何使用Pandas提取和显示给定年份的所有星期日。我们使用了Pandas库的date_range、dt和strftime方法来生成日期范围,提取星期日,并以可读格式显示它们。Pandas提供了一种强大而灵活的方式来操作Python中的日期和时间值,使其成为数据分析和可视化的有用工具。
以上就是使用Python中的Pandas显示给定年份的所有星期日的详细内容,更多请关注php中文网其它相关文章!
在macOS上进行Bash – 获取给定年份每个星期六的日期列表
例如,如果我想要一个1850年所有星期六的日期列表,它应该看起来像这样:
var = [ 18500105,18500112,18500119,…,18501228 ]
使用以下代码:
list=() for month in `seq -w 1 12`; do for day in `seq -w 1 31`; do list=( $(gdate -d "1850$month$day" '+%A %Y%m%d' | grep 'Saturday' | egrep -o '[[:digit:]]{4}[[:digit:]]{2}[[:digit:]]{2}' | tee /dev/tty) ) done done
但是,上面的命令不会在数组列表中写入任何内容,尽管它通过tee为我提供了正确的输出.
我该如何解决这些问题?
解决方法
#!/usr/bin/env bash y=1850 for d in {0..6} do # Identify the first day of the year that is a Saturday and break out of # the loop if (( $(date -d "$y-1-1 + $d day" '+%u') == 6)) then break fi done array=() # Loop until the last day of the year,increment 7 days at a # time and append the results to the array for ((w = d; w <= $(date -d "$y-12-31" '+%j'); w += 7)) do array+=( $(date -d "$y-1-1 + $w day" '+%Y%m%d') ) done
现在您可以将结果打印为
printf '%s\n' "${array[@]}"
要在MacOS上设置GNU日期,您需要执行brew install coreutils并以gdate身份访问命令,以区别于提供的本机版本.
在Python中的数据框中获取给定年份和星期数的星期结束日期
使用fromisocalendar
来获取年份和星期数,并给出星期几(星期六为6)为日期:
import pandas as pd
df = pd.DataFrame({'year':[2010,2009],'week number':[23,5]})
from datetime import date
df['end_week'] = df.apply(lambda x : date.fromisocalendar(x['year'],x['week number'],6).strftime("%d/%m/%Y"),axis=1)
print(df)
对于3.6之前的版本(包括3.6):
import pandas as pd
df = pd.DataFrame({'year':[2010,5]})
from datetime import datetime
def date_from_isoweek(year,week,day):
return datetime.strptime(f"{year:04d} {week:02d} {day:d}","%G %V %u").date()
df['end_week'] = df.apply(lambda x : date_from_isoweek(x['year'],axis=1)
print(df)
输出:
year week number end_week
0 2010 23 12/06/2010
1 2009 5 31/01/2009
,
您的问题是错误的。它应该包括输入和输出的示例 另外,我认为您可以使用 datetime 标准库
关于如何在python中计算任何给定年份每个季度的周数和如何在python中计算任何给定年份每个季度的周数的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于使用NumPy在Python中计算给定两个向量的外积、使用Python中的Pandas显示给定年份的所有星期日、在macOS上进行Bash – 获取给定年份每个星期六的日期列表、在Python中的数据框中获取给定年份和星期数的星期结束日期的相关信息,请在本站寻找。
本文标签: