ChatGPT在数据处理中的应用
ChatGPT在数据处理中的应用
今天的这篇文章,让我不断体会AI的强大,愿人类社会在AI的助力下走向更加灿烂辉煌的明天。
扫描下面二维码注册
数据处理是贯穿整个数据分析过程的关键步骤,主要是对数据进行各种操作,以达到最终的分析目的。数据处理主要包括以下几部分。
1.1 概览数据
接下来的操作基于示例表的样例数据展开。这是一个简短的订单明细表,包含订单ID、用户ID、产品ID、订单日期、用户性别、用户年龄这几列。我们先对这份数据进行概览。
订单ID | 用户ID | 产品ID | 订单日期 | 用户性别 | 用户年龄 |
---|---|---|---|---|---|
1001 | 101 | 10001 | 2023-04-01 | 男 | 28 |
1002 | 102 | 10002 | 2023-04-01 | 女 | |
1003 | 103 | 10003 | 2023-04-01 | 男 | 22 |
1004 | 104 | 10001 | 2023-04-01 | 女 | |
1005 | 105 | 10002 | 2023-04-01 | 男 | 45 |
1006 | 106 | 10003 | 2023-04-01 | 女 | 32 |
1007 | 101 | 10001 | 2023-04-02 | 男 | 28 |
1008 | 102 | 10002 | 2023-04-02 | 女 | 35 |
1009 | 103 | 10003 | 2023-04-02 | 男 | 22 |
1010 | 104 | 10001 | 2023-04-02 | 女 | 45 |
此表格由[小蜜蜂AI网站][https://zglg.work]生成。
1.1.1 ChatGPT帮我做
来看第一种实现方式。只需把数据传给ChatGPT,并发出明确的操作指令即可。源数据一般是CSV格式的,我们需要将其以文本格式传入ChatGPT。下面我们向ChatGPT输入具体操作和数据集。
在输入数据时,我们要将CSV文件转换成可以直接输入ChatGPT中的格式。只需将CSV文件用记事本或文本编辑器打开,然后复制粘贴即可。
按照上面的指令,ChatGPT返回如下表所示的结果。
统计指标 | 订单ID | 用户ID | 产品ID | 用户年龄 |
---|---|---|---|---|
数据类型 | 整数 | 整数 | 整数 | 整数 |
非空值个数 | 10 | 10 | 10 | 8 |
均值 | 1005.5 | 102.5 | 10002 | 34.25 |
中位数 | 1005.5 | 102.5 | 10002 | 33.5 |
最小值 | 1001 | 101 | 10001 | 22 |
最大值 | 1010 | 104 | 10003 | 45 |
标准差 | 2.87 | 1.29 | 0.82 | 7.79 |
注:订单日期和用户性别列属于文本型数据,无法进行数值统计。
1.1.2 ChatGPT告诉我
来看第二种实现方式,问ChatGPT用什么工具可以及如何实现某个需求。我们需要把数据结构以及具体需求描述清楚,然后发送给ChatGPT。在Excel中概览数据比较简单,这里不展开了,而主要展示在SQL和Python中如何实现。下面是我们向ChatGPT发送的具体内容。
ChatGPT收到上述内容以后,返回如下结果。
-- SQL结果
SELECTCOUNT(order_id) AS non_null_order_id_count, COUNT(DISTINCT user_id) AS non_null_user_id_count,COUNT(DISTINCT product_id) AS non_null_product_id_count,AVG(order_date) AS avg_order_date,PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY order_date) AS median_order_date,MIN(order_date) AS min_order_date,MAX(order_date) AS max_order_date,AVG(user_age) AS avg_user_age,STDDEV(user_age) AS stddev_user_age
FROMorders;
import pandas as pdorder_df = pd.read_csv('order.csv')result = order_df.describe().transpose()result['non_null'] = order_df.count()
print(result[['non_null', 'mean', '50%','min', 'max', 'std']])# 运行结果如下:non_null mean 50% min max std
订单ID 10 1005.500000 1005.5 1001.0 1010.0 3.027650
用户ID 10 103.100000 103.0 101.0 106.0 1.663330
产品ID 10 10001.900000 10002.0 10001.0 10003.0 0.875595
用户年龄 9 32.444444 32.0 22.0 45.0 8.560244Process finished with exit code 0
在SQL结果中,我没有实际去验证。在Python结果中,使用了describe函数,还是很不错的。我们在Python中概览数据时,就是使用该函数。但是describe函数的结果中已经包含了非空值计数,而ChatGPT又单独计算了一次。
1.2 数据预处理
数据预处理主要包括缺失值填充、重复值删除、异常值删除或替换。接下来看看ChatGPT如何帮助我们完成这项工作。
1.2.1 ChatGPT帮我做
第一种实现方式。下面是我们向ChatGPT输入的具体操作和数据集。
ChatGPT收到上述内容后,给出如下的Python处理代码及结果。
import pandas as pd
import numpy as np# 创建数据集
data = {'订单ID': [1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010],'用户ID': [101, 102, 103, 104, 105, 106, 101, 102, 103, 104],'产品ID': [10001, 10002, 10003, 10001, 10002, 10003, 10001, 10002, 10003, 10001],'订单日期': ['2023-04-01', '2023-04-01', '2023-04-01', '2023-04-01', '2023-04-01', '2023-04-01', '2023-04-02', '2023-04-02', '2023-04-02', '2023-04-02'],'用户性别': ['男', '女', '男', '女', '男', '女', '男', '女', '男', '女'],'用户年龄': [28, 35, 22, np.nan, 45, 32, 28, 35, 22, 45]}df = pd.DataFrame(data)# 找出缺失值并用均值填充
mean_age = df['用户年龄'].mean()
df['用户年龄'] = df['用户年龄'].fillna(mean_age).astype(int)# 去重
df = df.drop_duplicates()# 将年龄大于40的值视作异常并替换为40
df.loc[df['用户年龄'] > 40,'用户年龄'] = 40
df.to_excel('order.xlsx',index=False) # 我个人添加的,其他部分均由ChatGPT生成
订单ID | 用户ID | 产品ID | 订单日期 | 用户性别 | 用户年龄 |
---|---|---|---|---|---|
1001 | 101 | 10001 | 2023-04-01 | 男 | 28 |
1002 | 102 | 10002 | 2023-04-01 | 女 | 35 |
1003 | 103 | 10003 | 2023-04-01 | 男 | 22 |
1004 | 104 | 10001 | 2023-04-01 | 女 | 32 |
1005 | 105 | 10002 | 2023-04-01 | 男 | 40 |
1006 | 106 | 10003 | 2023-04-01 | 女 | 32 |
1007 | 101 | 10001 | 2023-04-02 | 男 | 28 |
1008 | 102 | 10002 | 2023-04-02 | 女 | 35 |
1009 | 103 | 10003 | 2023-04-02 | 男 | 22 |
1010 | 104 | 10001 | 2023-04-02 | 女 | 40 |
ChatGPT没有输出哪一列有缺失值,而是直接对缺失值进行了填充,并对年龄大于40的值进行了替换。总体而言结果符合要求。
1.2.2 ChatGPT告诉我
来看第二种实现方式,把数据结构以及具体要进行的操作描述清楚,然后发给ChatGPT。关于数据预处理,在Excel中实现起来比较简单,而主要展示在SQL和Python中如何实现。下面是我们向ChatGPT发送的具体内容。
ChatGPT收到上述内容后,返回如下结果。
Hive SQL 实现
1. 填充缺失值并返回数据集
-- 使用均值填充缺失值
SELECT 订单ID,用户ID,产品ID,订单日期,用户性别,COALESCE(用户年龄, AVG(用户年龄) OVER ()) AS 用户年龄
FROM your_table;2. 删除重复行后的数据集
-- 删除重复行
CREATE TABLE temp_table AS
SELECT DISTINCT *
FROM your_table;-- 可选步骤:删除原表,重命名临时表为原表名3. 替换异常值后的数据集
-- 替换年龄大于40的异常值为40
UPDATE your_table
SET 用户年龄 = 40
WHERE 用户年龄 > 40;
Python 实现
1. 填充缺失值并返回数据集import pandas as pd# 读取数据
df = pd.read_csv("your_data.csv")# 使用均值填充缺失值
df['用户年龄'] = df['用户年龄'].fillna(df['用户年龄'].mean())2. 删除重复行后的数据集
# 删除重复行
df = df.drop_duplicates()3. 替换异常值后的数据集
# 替换年龄大于40的异常值为40
df.loc[df['用户年龄'] > 40, '用户年龄'] = 40
在SQL结果中,一个语句就实现了填充功能,其他的功能也都轻松搞定。在Python结果中,准确给出了各个操作的函数代码,还是不错的。可以自行体验一下。
1.3 数据选择
数据选择主要是根据实际需求选择特定的行或列。接下来看看ChatGPT如何帮助我们完成这项工作。
1.3.1 ChatGPT帮我做
看看第一种方式,下面是我们向ChatGPT输入的具体操作和数据集。
按照上面的指令,ChatGPT给出如下的Python代码及返回如下所示结果。
import pandas as pd# 创建数据集
data = {'订单ID': [1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010],'用户ID': [101, 102, 103, 104, 105, 106, 101, 102, 103, 104],'产品ID': [10001, 10002, 10003, 10001, 10002, 10003, 10001, 10002, 10003, 10001],'订单日期': ['2023-04-01', '2023-04-01', '2023-04-01', '2023-04-01', '2023-04-01', '2023-04-01', '2023-04-02', '2023-04-02', '2023-04-02', '2023-04-02'],'用户性别': ['男', '女', '男', '女', '男', '女', '男', '女', '男', '女'],'用户年龄': [28, 35, 22, None, 45, 32, 28, 35, 22, 45]
}df = pd.DataFrame(data)# 找出订单日期为“2023-04-01”的女性用户全部订单
filtered_df = df[(df['订单日期'] == '2023-04-01') & (df['用户性别'] == '女')]
print(filtered_df)订单ID 用户ID 产品ID 订单日期 用户性别 用户年龄
1 1002 102 10002 2023-04-01 女 35.0
3 1004 104 10001 2023-04-01 女 NaN
5 1006 106 10003 2023-04-01 女 32.0
可以看到,ChatGPT按照我们的要求完成了任务。
1.3.2 ChatGPT告诉我
看看第二种实现方式。下面是我们向ChatGPT发送的具体内容。
按照上面的指令,ChatGPT返回如下结果。
SQL 结果:
-- 筛选订单日期为“2023-04-01”的女性用户的全部订单
SELECT *
FROM your_table
WHERE 订单日期 = '2023-04-01' AND 用户性别 = '女';
# Python结果
import pandas as pd
# 假设数据已经存储在名为data的pandas DataFrame中
# 如果需要从CSV文件中读取数据,可以使用如下代码:
# data = pd.read_csv('your_csv_file.csv')df = pd.DataFrame(data)# 筛选订单日期为“2023-04-01”的女性用户的全部订单
filtered_df = df[(df['订单日期'] == '2023-04-01') & (df['用户性别'] == '女')]
print(filtered_df)
因为数据选择相关的需求整体比较简单,所以ChatGPT给出的结果都没什么问题。
1.4 数值操作
数值操作主要是对数据进行替换、排序等操作。接下来看看ChatGPT如何帮助我们完成这项工作。
1.4.1 ChatGPT帮我做
看看第一种方式。下面是我们向ChatGPT输入的具体操作和数据集。
ChatGPT收到上述内容后,返回如下结果。
import pandas as pd# 创建数据集
data = {'订单ID': [1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010],'用户ID': [101, 102, 103, 104, 105, 106, 101, 102, 103, 104],'产品ID': [10001, 10002, 10003, 10001, 10002, 10003, 10001, 10002, 10003, 10001],'订单日期': ['2023-04-01', '2023-04-01', '2023-04-01', '2023-04-01', '2023-04-01', '2023-04-01', '2023-04-02', '2023-04-02', '2023-04-02', '2023-04-02'],'用户性别': ['男', '女', '男', '女', '男', '女', '男', '女', '男', '女'],'用户年龄': [28, 35, 22, None, 45, 32, 28, 35, 22, 45]
}df = pd.DataFrame(data)# 替换年龄大于40的值为40
df.loc[df['用户年龄'] > 40, '用户年龄'] = 40# 按订单日期升序排列
df = df.sort_values(by='订单日期')# 新增一列,内容为该用户的上一笔订单日期
df['上一笔订单日期'] = df.groupby('用户ID')['订单日期'].shift(1)df.to_excel('帮我做.xlsx', index=False)
# 返回最终结果
print(df)
可以看到,ChatGPT给出的结果中,年龄已经按要求替换了,订单日期也升序排列了,新的一列也添加成了,而按订单日期升序排列的操作导致新增的这一列看起来有点乱,但结果是正确的。👍👍👍
1.4.2 ChatGPT告诉我
看看第二种方式。下面是我们向ChatGPT发送的具体内容。
ChatGPT收到上述内容后,返回如下结果。
SQL 结果:
-- 1. 将年龄大于40的值替换成40
UPDATE your_table
SET 用户年龄 = 40
WHERE 用户年龄 > 40;-- 2. 将数据按照订单日期进行升序排列
SELECT *
FROM your_table
ORDER BY 订单日期 ASC;-- 3. 新增一列数据,内容为该用户的上一笔订单日期
SELECT *,LAG(订单日期) OVER (PARTITION BY 用户ID ORDER BY 订单日期) AS 上一笔订单日期
FROM your_table;
# Python 结果import pandas as pddata = pd.read_csv('order.csv')
df = pd.DataFrame(data)# 1. 将年龄大于40的值替换成40
df['用户年龄'] = df['用户年龄'].apply(lambda x: min(x, 40))# 2. 将数据按照订单日期进行升序排列
df.sort_values(by='订单日期',inplace=True)# 3. 新增一列数据,内容为该用户的上一笔订单日期
df['上一笔订单日期'] = df.groupby('用户ID')['订单日期'].shift(1)
df.to_excel('帮我做1.xlsx')
print(df)订单ID 用户ID 产品ID 订单日期 用户性别 用户年龄 上一笔订单日期
0 1001 101 10001 2023-04-01 男 28.0 NaN
1 1002 102 10002 2023-04-01 女 35.0 NaN
2 1003 103 10003 2023-04-01 男 22.0 NaN
3 1004 104 10001 2023-04-01 女 NaN NaN
4 1005 105 10002 2023-04-01 男 40.0 NaN
5 1006 106 10003 2023-04-01 女 32.0 NaN
6 1007 101 10001 2023-04-02 男 28.0 2023-04-01
7 1008 102 10002 2023-04-02 女 35.0 2023-04-01
8 1009 103 10003 2023-04-02 男 22.0 2023-04-01
9 1010 104 10001 2023-04-02 女 40.0 2023-04-01
SQL结果的逻辑基本是准确的。这里主要看第三个操作,刚开始的实现逻辑是借助ROW_NUMBER 函数,比较复杂,经过提示可以直接使用LAG函数以后(过程省略),ChatGPT马上给出了正确的答案。
Python结果的实现方式和代码完全正确。
1.5 数值运算
数值运算主要是对数据进行算术运算、比较运算、汇总运算等操作。接下来看看ChatGPT如何帮助我们完成这项工作的。
1.5.1 ChatGPT帮我做
看看第一种实现方式。下面是我们向ChatGPT输入的具体操作和数据集。
ChatGPT收到上述内容后,Python实现代码及返回结果。
import pandas as pd# 创建数据集
data = {'订单ID': [1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010],'用户ID': [101, 102, 103, 104, 105, 106, 101, 102, 103, 104],'产品ID': [10001, 10002, 10003, 10001, 10002, 10003, 10001, 10002, 10003, 10001],'订单日期': ['2023-04-01', '2023-04-01', '2023-04-01', '2023-04-01', '2023-04-01', '2023-04-01', '2023-04-02', '2023-04-02', '2023-04-02', '2023-04-02'],'用户性别': ['男', '女', '男', '女', '男', '女', '男', '女', '男', '女'],'用户年龄': [28, 35, 22, None, 45, 32, 28, 35, 22, 45]
}df = pd.DataFrame(data)# 1. 将订单ID列和产品ID列进行相加,生成新的一列
df['相加结果'] = df['订单ID'] + df['产品ID']# 2. 对用户ID进行非重复值计数
non_duplicate_count = df['用户ID'].nunique()# 返回结果
print("添加相加结果的数据集:")
print(df)
print("\n用户ID的非重复值计数结果:", non_duplicate_count)# 运行结果
添加相加结果的数据集:订单ID 用户ID 产品ID 订单日期 用户性别 用户年龄 相加结果
0 1001 101 10001 2023-04-01 男 28.0 11002
1 1002 102 10002 2023-04-01 女 35.0 11004
2 1003 103 10003 2023-04-01 男 22.0 11006
3 1004 104 10001 2023-04-01 女 NaN 11005
4 1005 105 10002 2023-04-01 男 45.0 11007
5 1006 106 10003 2023-04-01 女 32.0 11009
6 1007 101 10001 2023-04-02 男 28.0 11008
7 1008 102 10002 2023-04-02 女 35.0 11010
8 1009 103 10003 2023-04-02 男 22.0 11012
9 1010 104 10001 2023-04-02 女 45.0 11011用户ID的非重复值计数结果: 6
可以看到,ChatGPT按照我们的要求完成了任务。
1.5.2 ChatGPT告诉我
看看第二种方式。下面是我们向ChatGPT发送的具体内容。
ChatGPT收到上述内容以后,返回如下结果。
# SQL结果
-- 1. 将订单ID列和产品ID列进行相加,生成新的一列
ALTER TABLE your_table ADD COLUMN 相加结果 INT;
UPDATE your_table SET 相加结果 = 订单ID + 产品ID;-- 2. 对用户ID进行非重复值计数,返回计数结果
SELECT COUNT(DISTINCT 用户ID) AS 非重复用户数
FROM your_table;
# Python结果
import pandas as pddata = pd.read_csv('order.csv')
df = pd.DataFrame(data)# 1. 将订单ID列和产品ID列进行相加,生成新的一列
df['相加结果'] = df['订单ID'] + df['产品ID']# 2. 对用户ID进行非重复值计数,返回计数结果
non_duplicate_count = df['用户ID'].nunique()# 返回结果
print("添加相加结果的数据集:")
print(df)
print("\n用户ID的非重复值计数结果:", non_duplicate_count)
上述SQL和Python的实现逻辑都是正确的。因为数值运算整体比较简单,所以这里就不举更多例子了,大家可以根据实际的业务需求进行调整。
1.6 数据分组
数据分组是按照某些维度先对数据进行分组,再对分组后的数据进行汇总运算。接下来看看ChatGPT如何帮助我们完成这项工作。
1.6.1 ChatGPT帮我做
看看第一种方式。下面是我们向ChatGPT输入的具体操作和数据集。
ChatGPT收到上述内容后,返回如下结果。
可以看到,ChatGPT按照我们的要求完成了任务。
1.6.2 ChatGPT告诉我
看看第二种实现方式。下面是我们向ChatGPT发送的具体内容。
ChatGPT收到上述内容后,返回如下结果。
SQL 结果
-- 计算男性和女性的订单数
SELECT 用户性别, COUNT(订单ID) AS 订单数
FROM your_table
GROUP BY 用户性别;-- 计算男性和女性的用户数
SELECT 用户性别, COUNT(DISTINCT 用户ID) AS 用户数
FROM your_table
GROUP BY 用户性别;
# Python结果
import pandas as pddata = pd.read_csv('order.csv')
df = pd.DataFrame(data)# 计算男性和女性的订单数
order_counts = df['用户性别'].value_counts()# 计算男性和女性的用户数
user_counts = df.groupby('用户性别')['用户ID'].nunique()# 返回结果
print("男性和女性各自的订单数:")
print(order_counts)
print("\n男性和女性各自的用户数:")
print(user_counts)# 运行结果如下:
男性和女性各自的订单数:
男 5
女 5
Name: 用户性别, dtype: int64男性和女性各自的用户数:
用户性别
女 3
男 3
Name: 用户ID, dtype: int64
上述SQL和Python的实现逻辑都是正确的
1.7 时间序列分析
时间序列分析的操作主要时间格式互换、时间索引、时间运算等。接下来看看ChatGPT如何帮助我们完成这项工作。
1.7.1 ChatGPT帮我做
看看第一种方式。下面是我们向ChatGPT输入的具体操作和数据集。
ChatGPT收到上述内容后,返回如下所示结果。
1.7.2 ChatGPT帮我做
看看第二种方式,下面我们向ChatGPT发送的具体内容。
ChatGPT收到上述内容后,返回如下结果。
SQL 结果
-- 1. 提取订单日期中的日部分,存储在新的一列中
ALTER TABLE your_table ADD COLUMN 日部分 STRING;
UPDATE your_table SET 日部分 = SUBSTR(订单日期, 9, 2);-- 2. 将订单日期向前滑动30天,存储在新的一列中
ALTER TABLE your_table ADD COLUMN 减去30天日期 STRING;
UPDATE your_table SET 减去30天日期 = FROM_UNIXTIME(UNIX_TIMESTAMP(订单日期) - 30*24*60*60, 'yyyy-MM-dd');-- 3. 将订单日期为“2023-04-01”的数据筛选出来
SELECT *
FROM your_table
WHERE 订单日期 = '2023-04-01';
# Python结果
'''import pandas as pd
from datetime import timedelta# 读取数据集
data = pd.read_csv("order.csv")# 提取订单日期中的日部分
data['日'] = pd.to_datetime(data['订单日期']).dt.day
# 将订单日期转换为日期类型
data['订单日期'] = pd.to_datetime(data['订单日期'])# 向前滑动30天
data['提前30天'] = data['订单日期'] - timedelta(days=30)# 筛选订单日期为“2023-04-01”的数据
filtered_data = data[data['订单日期'] == '2023-04-01']
# 打印结果
filtered_data.to_excel('筛选完.xlsx')'''
import pandas as pddata = pd.read_csv('order.csv')
df = pd.DataFrame(data)# 1. 提取订单日期中的日部分,存储在新的一列中
df['日部分'] = df['订单日期'].str[-2:]# 2. 将订单日期向前滑动30天,存储在新的一列中
df['减去30天日期'] = pd.to_datetime(df['订单日期']) - pd.DateOffset(days=30)# 3. 将订单日期为“2023-04-01”的数据筛选出来
filtered_data = df[df['订单日期'] == '2023-04-01']# 返回结果
print("提取订单日期中的日部分和减去30天日期后的数据集:")
print(df[['订单ID', '用户ID', '产品ID', '订单日期', '用户性别', '用户年龄', '日部分', '提前30天']])
print("\n订单日期为'2023-04-01'的数据:")
print(filtered_data)# 运行结果
订单日期为'2023-04-01'的数据:订单ID 用户ID 产品ID 订单日期 用户性别 用户年龄 日部分 提前30天
0 1001 101 10001 2023-04-01 男 28.0 1 2023-03-02
1 1002 102 10002 2023-04-01 女 35.0 1 2023-03-02
2 1003 103 10003 2023-04-01 男 22.0 1 2023-03-02
3 1004 104 10001 2023-04-01 女 NaN 1 2023-03-02
4 1005 105 10002 2023-04-01 男 45.0 1 2023-03-02
5 1006 106 10003 2023-04-01 女 32.0 1 2023-03-02
上述SQL和Python的实现逻辑都是正确的。
所有示例均可在小蜜蜂AI网站实现,网址:https://zglg.work
扫描下面二维码注册
相关文章:

ChatGPT在数据处理中的应用
ChatGPT在数据处理中的应用 今天的这篇文章,让我不断体会AI的强大,愿人类社会在AI的助力下走向更加灿烂辉煌的明天。 扫描下面二维码注册 数据处理是贯穿整个数据分析过程的关键步骤,主要是对数据进行各种操作,以达到最终的…...

微服务-Alibaba微服务nacos实战
1. Nacos配置中心 1.1 微服务为什么需要配置中心 在微服务架构中,当系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件也必须跟着迁移(分割),这样配置就分散了,不仅如此&…...
Linux Driver | 设备树开发之初识设备树
Linux Driver | 设备树开发之初识设备树 时间:2024年2月22日20:35:13 文章目录 **Linux Driver** | 设备树开发之初识设备树参考1.设备树开发2.`Linux`设备树的由来3.`Linux`设备树的由来-为什么会有设备树4.设备树的由来5.快速编译设备树---**DTC** (`device tree compiler`)…...

2月24日(周六)比赛前瞻:曼联 VS 富勒姆、拜仁 VS 莱比锡
大家好,博主将持续更新胜负14场前瞻,此处每日赛事间歇更新,胃信号每日更新。 精选赛事:曼联 VS 富勒姆 曼联近期状态显著提升,上一轮联赛客场2-1战胜卢顿,连续7场正赛取得6胜1平的成绩,保持不败…...
React18源码: task任务调度和时间分片
任务队列管理 调度的目的是为了消费任务,接下来就具体分析任务队列是如何管理与实现的 在 Scheduler.js 中,维护了一个 taskQueue, 任务队列管理就是围绕这个 taskQueue 展开 // Tasks are stored on a min heap var taskQueue - []; var timerQueue …...
【工具类】阿里域名关联ip(python版)
获取代码如下 # codingutf-8import argparse import json import urllib import logging# 加载 ali 核心 SDK from aliyunsdkcore.client import AcsClient from aliyunsdkalidns.request.v20150109 import (DescribeSubDomainRecordsRequest,AddDomainRecordRequest,UpdateDo…...
STM32自学☞输入捕获测频率和占空比案例
本文是通过PA0口输出PWM波,然后通过PA6口捕获PWM波的频率和占空比,最终在oled屏上显示我们自己设置的频率和占空比。由于和前面的pwm呼吸灯代码有重合部分所以本文中的代码由前者修改而来,对于文件命名不要在意。 pwm_led.c文件 /* 编写步…...

[yolov9]使用python部署yolov9的onnx模型
【框架地址】 https://github.com/WongKinYiu/yolov9 【yolov9简介】 在目标检测领域,YOLOv9 实现了一代更比一代强,利用新架构和方法让传统卷积在参数利用率方面胜过了深度卷积。 继 2023 年 1 月 正式发布一年多以后,YOLOv9 终于来了&a…...
ShellExecute的用法
1、标准用法 ShellExecute函数原型及参数含义如下: function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall; ●hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将…...
蓝桥杯:递增三元组
题目 递增三元组(2018年蓝桥杯真题) 题目描述: 给定三个整数数组 A [A1, A2, … AN], B [B1, B2, … BN], C [C1, C2, … CN], 请你统计有多少个三元组(i, j, k) 满足: 1 < i, j, k < N Ai < Bj &…...

目标检测卷王YOLO卷出新高度:YOLOv9问世
论文摘要:如今的深度学习方法重点关注如何设计最合适的目标函数,使得模型的预测结果能够最接近真实情况。 同时,必须设计一个适当的架构,可以帮助获取足够的信息进行预测。 现有方法忽略了一个事实,即当输入数据经过逐层特征提取和空间变换时,大量信息将会丢失。 本文将深…...

华为---RSTP(二)---RSTP基本配置示例
目录 1. 示例要求 2. 网络拓扑图 3. 配置命令 4. 测试终端连通性 5. RSTP基本配置 5.1 启用STP 5.2 修改生成树协议模式为RSTP 5.3 配置根交换机和次根交换机 5.4 设置边缘端口 6. 指定端口切换为备份端口 7. 测试验证网络 1. 示例要求 为防止网络出现环路…...

【Python笔记-设计模式】装饰器模式
一、说明 装饰器模式是一种结构型设计模式,旨在动态的给一个对象添加额外的职责。 (一) 解决问题 不改变原有对象结构的情况下,动态地给对象添加新的功能或职责,实现透明地对对象进行功能的扩展。 (二) 使用场景 如果用继承来扩展对象行…...

二十八、图像的高斯模糊操作
项目功能实现:对一张图片进行高斯模糊操作 按照之前的博文结构来,这里就不在赘述了 更多的图像模糊操作原理可参考博文:七、模糊操作,里面有详细原理讲解,只不过代码是python写的。 一、头文件 gaussian_blur.h #p…...

开源分子对接程序rDock的安装及使用流程
欢迎浏览我的CSND博客! Blockbuater_drug …点击进入 前言 本文介绍开源分子对接程序rDock在Linux Ubuntu 22.04系统上的conda安装、编译安装过程及程序使用流程。 一、rDock是什么? rDock来源 rDock是一个快速、多功能的开源对接程序,可用…...

【JavaEE】_tomcat的安装与使用
目录 1. Tomcat简介 2. Tomcat安装 2.1 下载Tomcat并解压缩 2.2 启动Tomcat 2.2.1 Tomcat乱码问题 2.2.2 Tomcat闪退问题 2.3 访问Tomcat欢迎页面 3. 使用Tomcat部署前端代码 3.1 路径匹配 3.2 文件路径访问与网络访问 4. 静态页面与动态页面 5. 基于tomcat的网站后…...
实现一个Windows环境一键启停Oracle的bat脚本
Oracle数据库有许多优点,其中一些最重要的包括: 可靠性和稳定性: Oracle数据库经过长期的发展和测试,被广泛认为是非常可靠和稳定的数据库管理系统。它在大型企业和关键业务环境中被广泛应用,能够处理高负载和大规模的数据。 高性能: Oracle数据库具有优化的查询处理器和…...

大数据-数据可视化-环境部署vue+echarts+显示案例
文章目录 一、安装node.js1 打开火狐浏览器,下载Node.js2 进行解压3 配置环境变量4 配置生效二、安装vue脚手架1 下载vue脚手架,耐心等待。三、创建vue项目并启动1 创建2 启动四、下载echarts.js与axios.js到本地。五、图表显示demo【以下所有操作均在centos上进行】 一、安…...
spark超大数据批量写入redis
利用spark的分布式优势,一次性批量将7000多万的数据写入到redis中。 # 配置spark接口 import os import findspark from pyspark import SparkConf from pyspark.sql import SparkSession os.environ["JAVA_HOME"] "/usr/local/jdk1.8.0_192"…...
C# Socket的使用
C# 中的 System.Net.Sockets.Socket 类是 .NET Framework 提供的核心类,用于处理网络套接字编程。Socket 类是用于网络编程的基础类,它位于 System.Net.Sockets 命名空间中。 使用 Socket 类,可以创建客户端和服务器应用程序来进行基于TCP、…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...

深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...