ChatGPT在数据处理中的应用

news2024/12/23 4:41:18

ChatGPT在数据处理中的应用

今天的这篇文章,让我不断体会AI的强大,愿人类社会在AI的助力下走向更加灿烂辉煌的明天。

扫描下面二维码注册
在这里插入图片描述

​ 数据处理是贯穿整个数据分析过程的关键步骤,主要是对数据进行各种操作,以达到最终的分析目的。数据处理主要包括以下几部分。

1.1 概览数据

​ 接下来的操作基于示例表的样例数据展开。这是一个简短的订单明细表,包含订单ID、用户ID、产品ID、订单日期、用户性别、用户年龄这几列。我们先对这份数据进行概览。

订单ID用户ID产品ID订单日期用户性别用户年龄
1001101100012023-04-0128
1002102100022023-04-01
1003103100032023-04-0122
1004104100012023-04-01
1005105100022023-04-0145
1006106100032023-04-0132
1007101100012023-04-0228
1008102100022023-04-0235
1009103100032023-04-0222
1010104100012023-04-0245

此表格由[小蜜蜂AI网站][https://zglg.work]生成。

1.1.1 ChatGPT帮我做

​ 来看第一种实现方式。只需把数据传给ChatGPT,并发出明确的操作指令即可。源数据一般是CSV格式的,我们需要将其以文本格式传入ChatGPT。下面我们向ChatGPT输入具体操作和数据集。

Screenshot 2024-02-21 at 21.17.16

​ 在输入数据时,我们要将CSV文件转换成可以直接输入ChatGPT中的格式。只需将CSV文件用记事本或文本编辑器打开,然后复制粘贴即可。

​ 按照上面的指令,ChatGPT返回如下表所示的结果。

统计指标订单ID用户ID产品ID用户年龄
数据类型整数整数整数整数
非空值个数1010108
均值1005.5102.51000234.25
中位数1005.5102.51000233.5
最小值10011011000122
最大值10101041000345
标准差2.871.290.827.79

注:订单日期和用户性别列属于文本型数据,无法进行数值统计。

1.1.2 ChatGPT告诉我

​ 来看第二种实现方式,问ChatGPT用什么工具可以及如何实现某个需求。我们需要把数据结构以及具体需求描述清楚,然后发送给ChatGPT。在Excel中概览数据比较简单,这里不展开了,而主要展示在SQL和Python中如何实现。下面是我们向ChatGPT发送的具体内容。

Screenshot 2024-02-21 at 21.24.46

​ ChatGPT收到上述内容以后,返回如下结果。

-- SQL结果
SELECT
    COUNT(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
FROM
    orders;

import pandas as pd

order_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.560244

Process finished with exit code 0

​ 在SQL结果中,我没有实际去验证。在Python结果中,使用了describe函数,还是很不错的。我们在Python中概览数据时,就是使用该函数。但是describe函数的结果中已经包含了非空值计数,而ChatGPT又单独计算了一次。

1.2 数据预处理

​ 数据预处理主要包括缺失值填充、重复值删除、异常值删除或替换。接下来看看ChatGPT如何帮助我们完成这项工作。

1.2.1 ChatGPT帮我做

​ 第一种实现方式。下面是我们向ChatGPT输入的具体操作和数据集。

Screenshot 2024-02-21 at 22.38.39

​ 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订单日期用户性别用户年龄
1001101100012023-04-0128
1002102100022023-04-0135
1003103100032023-04-0122
1004104100012023-04-0132
1005105100022023-04-0140
1006106100032023-04-0132
1007101100012023-04-0228
1008102100022023-04-0235
1009103100032023-04-0222
1010104100012023-04-0240

​ ChatGPT没有输出哪一列有缺失值,而是直接对缺失值进行了填充,并对年龄大于40的值进行了替换。总体而言结果符合要求。

1.2.2 ChatGPT告诉我

​ 来看第二种实现方式,把数据结构以及具体要进行的操作描述清楚,然后发给ChatGPT。关于数据预处理,在Excel中实现起来比较简单,而主要展示在SQL和Python中如何实现。下面是我们向ChatGPT发送的具体内容。

Screenshot 2024-02-22 at 08.58.36

​ 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输入的具体操作和数据集。

Screenshot 2024-02-22 at 09.29.27

​ 按照上面的指令,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-0135.0
3  1004   104  10001  2023-04-01    女   NaN
5  1006   106  10003  2023-04-0132.0

​ 可以看到,ChatGPT按照我们的要求完成了任务。

1.3.2 ChatGPT告诉我

​ 看看第二种实现方式。下面是我们向ChatGPT发送的具体内容。

Screenshot 2024-02-22 at 09.35.24

​ 按照上面的指令,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输入的具体操作和数据集。

Screenshot 2024-02-22 at 09.57.15

​ 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)

Screenshot 2024-02-22 at 10.03.19

​ 可以看到,ChatGPT给出的结果中,年龄已经按要求替换了,订单日期也升序排列了,新的一列也添加成了,而按订单日期升序排列的操作导致新增的这一列看起来有点乱,但结果是正确的。👍👍👍

1.4.2 ChatGPT告诉我

​ 看看第二种方式。下面是我们向ChatGPT发送的具体内容。

Screenshot 2024-02-22 at 10.23.56

​ 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 pd

data = 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-0128.0         NaN
1  1002   102  10002           2023-04-0135.0         NaN
2  1003   103  10003           2023-04-0122.0         NaN
3  1004   104  10001           2023-04-01    女   NaN         NaN
4  1005   105  10002           2023-04-0140.0         NaN
5  1006   106  10003           2023-04-0132.0         NaN
6  1007   101  10001           2023-04-0228.0  2023-04-01
7  1008   102  10002           2023-04-0235.0  2023-04-01
8  1009   103  10003           2023-04-0222.0  2023-04-01
9  1010   104  10001           2023-04-0240.0  2023-04-01

Screenshot 2024-02-22 at 10.57.26

​ SQL结果的逻辑基本是准确的。这里主要看第三个操作,刚开始的实现逻辑是借助ROW_NUMBER 函数,比较复杂,经过提示可以直接使用LAG函数以后(过程省略),ChatGPT马上给出了正确的答案。

​ Python结果的实现方式和代码完全正确。

1.5 数值运算

​ 数值运算主要是对数据进行算术运算、比较运算、汇总运算等操作。接下来看看ChatGPT如何帮助我们完成这项工作的。

1.5.1 ChatGPT帮我做

​ 看看第一种实现方式。下面是我们向ChatGPT输入的具体操作和数据集。

Screenshot 2024-02-22 at 12.06.38

​ 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-0128.0  11002
1  1002   102  10002  2023-04-0135.0  11004
2  1003   103  10003  2023-04-0122.0  11006
3  1004   104  10001  2023-04-01    女   NaN  11005
4  1005   105  10002  2023-04-0145.0  11007
5  1006   106  10003  2023-04-0132.0  11009
6  1007   101  10001  2023-04-0228.0  11008
7  1008   102  10002  2023-04-0235.0  11010
8  1009   103  10003  2023-04-0222.0  11012
9  1010   104  10001  2023-04-0245.0  11011

用户ID的非重复值计数结果: 6

​ 可以看到,ChatGPT按照我们的要求完成了任务。

1.5.2 ChatGPT告诉我

​ 看看第二种方式。下面是我们向ChatGPT发送的具体内容。

Screenshot 2024-02-22 at 12.19.29

​ 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 pd

data = 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输入的具体操作和数据集。

Screenshot 2024-02-22 at 12.42.47

​ ChatGPT收到上述内容后,返回如下结果。

Screenshot 2024-02-22 at 12.46.28

​ 可以看到,ChatGPT按照我们的要求完成了任务。

1.6.2 ChatGPT告诉我

​ 看看第二种实现方式。下面是我们向ChatGPT发送的具体内容。

Screenshot 2024-02-22 at 12.52.10

​ 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 pd

data = 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)

# 运行结果如下:
男性和女性各自的订单数:55
Name: 用户性别, dtype: int64

男性和女性各自的用户数:
用户性别
女    33
Name: 用户ID, dtype: int64

​ 上述SQL和Python的实现逻辑都是正确的

1.7 时间序列分析

​ 时间序列分析的操作主要时间格式互换、时间索引、时间运算等。接下来看看ChatGPT如何帮助我们完成这项工作。

1.7.1 ChatGPT帮我做

​ 看看第一种方式。下面是我们向ChatGPT输入的具体操作和数据集。

Screenshot 2024-02-22 at 13.10.04

​ ChatGPT收到上述内容后,返回如下所示结果。

Screenshot 2024-02-22 at 13.24.14

1.7.2 ChatGPT帮我做

​ 看看第二种方式,下面我们向ChatGPT发送的具体内容。

Screenshot 2024-02-22 at 13.32.42

​ 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 pd

data = 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        订单日期 用户性别  用户年龄 日部分    提前300  1001   101  		10001  				2023-04-0128.0   1 		2023-03-02
1  1002   102  		10002  				2023-04-0135.0   1 		2023-03-02
2  1003   103  		10003  				2023-04-0122.0   1 		2023-03-02
3  1004   104  		10001  				2023-04-01    女   NaN   1 		2023-03-02
4  1005   105  		10002  				2023-04-0145.0   1 		2023-03-02
5  1006   106  		10003  				2023-04-0132.0   1 		2023-03-02

上述SQL和Python的实现逻辑都是正确的。

所有示例均可在小蜜蜂AI网站实现,网址:https://zglg.work

扫描下面二维码注册

小伟海报

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1466054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Boom 3D for Mac 破解版(3D环绕立体声音效增强软件)2.0.2中文支持M3

Mac上想要听一场极致的音乐或看一场畅快淋漓的电影?这些Boom 3D for Mac都可以帮您实现,是一款Mac音效增强工具,可以将二维度的音效转换成三维度,让您彻底的享受一下极致的听觉盛宴! Boom 3D 2.0.2 Mac版主打音乐播放器…

【计算机毕业设计】541鲜花商城系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

驾校预约|驾校预约小程序|基于微信小程序的驾校预约平台设计与实现(源码+数据库+文档)

驾校预约小程序目录 目录 基于微信小程序的驾校预约平台设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户​微信端功能模块​ 2、管理员服务端功能模块 (1)学员信息管理 (2) 教练信息管理 (3&…

目标检测卷王YOLO卷出新高度:YOLOv9问世

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

第九节HarmonyOS 常用基础组件28-Select

1、描述 提供下拉选择菜单&#xff0c;可以让用户在多个选项之间选择。 2、接口 Select(options:Array<SelectOption>) 3、SelectOption对象说明 参数名 参数类型 必填 描述 value ResourceStr 是 下拉选项内容。 icon ResourceStr 否 下拉选项图标。 4…

第九节HarmonyOS 常用基础组件25-QRCode

1、描述 用于显示单个二维码的组件。 2、接口 QRCode(value:string) 3、参数 参数名 参数类型 必填 描述 value string 是 二维码内容字符串。 4、属性 名称 参数类型 描述 color ResourceColor 设置二维码颜色。默认值&#xff1a;Color.Black backgroundCo…

nginx的功能以及运用(编译、平滑升级、提高服务器设置、location alias 等)

nginx与apache的对比 nginx优点 nginx中INPUT OUTPUT模型 零拷贝技术 原理&#xff1a;减少内核空间和用户空间的拷贝次数&#xff0c;增加INPUT OUTPUT的效率 网络I/O 模型 同步&#xff0c;异步 &#xff1a; 消息反馈机制 阻塞和非阻塞 阻塞型I/O模型&#xff1a;不利于…

【Python笔记-设计模式】桥接模式

一、说明 桥接模式是一种结构型设计模式&#xff0c; 主要用于将抽象部分与它的实现部分分离&#xff0c; 从而能在开发时分别使用&#xff0c;使系统更加灵活&#xff0c;易于扩展。 (一) 解决问题 所有 组合类的数量将以几何级数增长 抽象和实现分离&#xff1a;桥接模式可…

【洛谷题解】P1008 [NOIP1998 普及组] 三连击

题目链接&#xff1a;[NOIP1998 普及组] 三连击 - 洛谷 题目难度&#xff1a;普及- 涉及知识点&#xff1a;构成比例 题意&#xff1a; 输出样例&#xff1a;192 384 576 219 438 657 273 546 819 327 654 981 分析…

Redis篇之Redis持久化的实现

持久化即把数据保存到可以永久保存的存储设备当中&#xff08;磁盘&#xff09;。因为Redis是基于内存存储数据的&#xff0c;一旦redis实例当即数据将会全部丢失&#xff0c;所以需要有某些机制将内存中的数据持久化到磁盘以备发生宕机时能够进行恢复&#xff0c;这一过程就称…

电阻篇 | 二、压敏电阻

电阻篇 | 二、压敏电阻 定义 压敏电阻是一种具有非线性伏安特性得电阻器件&#xff0c;无极性&#xff0c;主要用在电路承受过压时进行电压钳位&#xff0c;吸收多余得电流以保护敏感器件&#xff0c;英文名称 Voltage Dependent Resistor&#xff0c;简称VDR&#xff0c;或者…

Django模板(四)

一、include标签 加载一个模板,并在当前上下文中进行渲染。这是一种在模板中 “包含” 其他模板的方式 简单的理解:在当前模板中引入另外一个模板内容 1.1、使用方法 模板名称可以是变量,也可以是单引号或双引号的硬编码(带引号)的字符串 {% include "foo/bar.ht…

【Java代码审计】XSS漏洞

1. XSS漏洞 XSS&#xff08;Cross Site Scripting&#xff0c;为了和层叠样式表&#xff08;Cascading Style Sheet,CSS&#xff09;有所区分&#xff0c;故称XSS&#xff09;跨站脚本攻击是一种针对网站应用程序的安全漏洞攻击技术。它可以实现用户会话劫持、钓鱼攻击、恶意重…

链表之“无头单向非循环链表”

目录 ​编辑 1.顺序表的问题及思考 2.链表 2.1链表的概念及结构 2.2无头单向非循环链表的实现 1.创建结构体 2.单链表打印 3.动态申请一个节点 3.单链表尾插 4.单链表头插 5.单链表尾删 6.单链表头删 7.单链表查找 8.单链表在pos位置之前插入x 9.单链表删除pos位…

第四十天| 343. 整数拆分、96.不同的二叉搜索树

Leetcode 343. 整数拆分 题目链接&#xff1a;343 整数拆分 题干&#xff1a;给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。返回 你可以获得的最大乘积 。 思考&#xff1a;动态规划。…

【linux】shell命令 | Linux权限

目录 1. shell命令以及运行原理 2. Linux权限的概念 3. Linux权限管理 3.1 文件访问者的分类 3.2 文件类型和访问权限 3.3 文件权限值的表示方法 3.4 文件访问权限的相关设置方法 4. file指令 5. 目录的权限 6. 粘滞位 7. 关于权限的总结 1. shell命令以及运行原理 …

常用的函数式接口(Supplier、Consumer、Predicate、Function)

目录 一.函数式接口作为方法的参数 二.函数式接口作为方法的返回值 三.常用的函数式接口 3.1生产型Supplier接口 3.2消费型Consumer接口 抽象方法&#xff1a;accept 默认方法&#xff1a;andThen 3.3判断型Predicate接口 抽象方法&#xff1a;test 默认方法&#xf…

MySQL5.7.24解压版安装教程

一、MySQL5.7.24解压版安装步骤 1.在指定目录下解压压缩包。比如在D:\Program Files\mysql下解压 2.在D:\Program Files\mysql\mysql-5.7.24-winx64目录下新建data文件夹&#xff0c;如果此目录下没有my.ini也需要手动创建 3.my.ini 文件配置内容如下 [mysqld] # 设置3306端口…

数据结构2月19日

题目&#xff1a;顺序表作业 代码&#xff1a; 功能区&#xff1a; #include <stdio.h>#include <stdlib.h>#include "./d2191.h"SeqList* create_seqList(){SeqList* list (SeqList*)malloc(sizeof(SeqList));if(NULL list){return NULL;}list->p…

多输入回归预测|GWO-CNN-LSTM|灰狼算法优化的卷积-长短期神经网络回归预测(Matlab)

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、算法介绍&#xff1a; 灰狼优化算法&#xff1a; 卷积神经网络-长短期记忆网络&#xff1a; 四、完整程序下载&#xff1a; 一、程序及算法内容…