【Python 数据分析学习】Pandas的基础和应用(2)

news2024/9/21 11:07:29

题目

  • 1 数据运算与分析
    • 1.1 算数和比较运算
      • 1.1.1 算数运算
      • 1.1.2 比较运算
    • 1.2 数据排列
    • 1.3 统计分析
      • 1.3.1 基本的统计分析函数
      • 1.3.2 特殊的统计分析函数
      • 1.3.3 检查和处理空值
    • 1.4 分组与聚合
      • 1.4.1 数据分组
      • 1.4.2 数据聚合
    • 1.5 透视交叉表
      • 1.5.1 透视表
      • 1.5.2 交叉表
  • 2 实战演练
    • 2.1 实战 1

1 数据运算与分析

1.1 算数和比较运算

1.1.1 算数运算

Pandas为Series和DataFrame提供了许多算术运算的方法,算术规则是根据行列索引补齐后进行运算,运算结果默认为浮点型,补齐时缺项填充为NaN。

四则运算时:返回一个新的对象,也可以采用相关方法,实现相似的效果,分别是:
.add(d,**argws)
.sub(d,**argws)
.mul(d,**argws)
.div(d,**argws)

  1. 四则运算:索引一样且都为整型。

代码演示:

df1 = pd.DataFrame([np.arange(0,4),np.arange(1,5),np.arange(2,6)])
df2 = pd.DataFrame([np.arange(1,5),np.arange(0,4),np.arange(3,7)])
print("df1:\n",df1)
print("df2:\n",df2)
print("df1+df2:\n",df1+df2)

在这里插入图片描述

  1. 四则运算:索引不一样

代码演示:

df1 = pd.DataFrame([np.arange(0,4),np.arange(1,5),np.arange(2,6),np.arange(2,6)])
df2 = pd.DataFrame([np.arange(1,5),np.arange(0,4),np.arange(3,7)])
print("df1:\n",df1)
print("df2:\n",df2)
print("df1+df2:\n",df1+df2)

在这里插入图片描述

  1. 四则运算,运算DataFrame中的指定的列

代码演示:

df1  = pd.DataFrame(data = {"score": [80,70,60,50], "name1": ["小明", "小红", "小刚", "小华"]})
df2  = pd.DataFrame(data = {"score": [70,60,50,40], "name2": ["李明", "李华", "张兵", "王军"]})
print("df1:\n",df1)
print("df2:\n",df2)
print('df1["score"] - df2["score"]:\n',df1["score"] - df2["score"])

在这里插入图片描述

1.1.2 比较运算

比较运算:只能比较相同索引的元素,而且不进行补齐操作,返回一个布尔型的对象。常见的比较运算有:‘>’,‘<’,‘>=’,‘<=’,‘==’,‘!=’等。

  1. 索引一样,比较全部
    代码演示:
df1 = pd.DataFrame([np.arange(0,4),np.arange(1,5),np.arange(2,6)])
df2 = pd.DataFrame([np.arange(1,5),np.arange(0,4),np.arange(3,7)])
print("df1:\n",df1)
print("df2:\n",df2)
print("df1>df2:\n",df1>df2)

在这里插入图片描述

  1. 索引一样,比较DataFrame中指定的列

代码演示:

df1  = pd.DataFrame(data = {"score": [80,70,60,50], "name1": ["小明", "小红", "小刚", "小华"]})
df2  = pd.DataFrame(data = {"score": [70,60,50,40], "name2": ["李明", "李华", "张兵", "王军"]})

print(df1["score"]>df2["score"])

在这里插入图片描述

1.2 数据排列

Pandas提供了数据排序的方法,既可以依据行列的索引排序,也可以依据指定行列索引的数据排序。排序主要利用的方法是sort_index()和sort_values()。

  1. 依据索引排序:采用sort_index(axis=[0,1],ascending=True)方法。通过设置参数axis 实现对行索引和列索引的排序,一般默认升序。
    当axis=1时,实现对列索引的排序;
    当axis=0时,实现对行索引的排序。

代码演示:

arr = np.arange(12).reshape(3,4)
df = pd.DataFrame(data=arr, index = ["a",'b','c'], columns= ["a","b","c","d"])
df.sort_index(axis = 1) #列排序
print("df.sort_index(axis = 1):\n", df)

在这里插入图片描述

  1. 依据数值排序:使用的方法是sort_values(by,axis=0,ascending=True),其中默认升序,by是axis轴上的某个索引或者索引列表。此外,若含有空值时,统一排序到末尾。

代码演示:

df1  = pd.DataFrame(data = {"score": [80,70,60,50], "name1": ["小明", "小红", "小刚", "小华"]})
df2  = pd.DataFrame(data = {"score": [70,60,50,40], "name2": ["李明", "李华", "张兵", "王军"]})

df = df1.sort_values(by = "score",ascending = False)
print("score这一列排序,降序:\n",df)

在这里插入图片描述

1.3 统计分析

1.3.1 基本的统计分析函数

Pandas提供的Series和DataFrame两种数组类型还支持各种统计分析的操作。基本的统计分析函数一般均适用于以上两种数据类型。常见的基本统计函数如下表。

在这里插入图片描述

  1. **describe()**方法返回的结果包括各列的元素个数、均值、标准差、最小值、四分之一分位点、中位数、四分之三分位点和最大值。

代码演示:

df1  = pd.DataFrame(data = {"score": [80,70,60,50], "name": ["小明", "小红", "小刚", "小华"]})
df2  = pd.DataFrame(data = {"score": [70,60,50,40], "name": ["李明", "李华", "张兵", "王军"]})

#合并
df = pd.concat([df1, df2])
print(df)
#单独打印最大值
print("score 的最大值:",df["score"].sum())

#针对各列的统计汇总
print("针对各列的统计汇总: \n",df.describe())

在这里插入图片描述

  1. **corr()**方法可以返回数值列或指定两个数值列之间的相关系数。

代码演示:

df1  = pd.DataFrame(data = {"score1": [80,70,60,50],"score2": [70,90,50,40], "name": ["小明", "小红", "小刚", "小华"]})
df2  = pd.DataFrame(data = {"score1": [70,60,50,40], "score2": [80,70,90,50],"name": ["李明", "李华", "张兵", "王军"]})

#合并
df = pd.concat([df1,df2])
#使用corr函数
print("corr函数:\n",df["score1"].corr(df["score2"]))

在这里插入图片描述

1.3.2 特殊的统计分析函数

对于Pandas数据,由于其类似表格的特性,还支持许多累计统计的分析,为数据分析提供了很大的方便,也成Pandas的一大优势。常见的累计统计分析函数如下表。

在这里插入图片描述

  1. .cumsum()和.cumprod()函数分别返回一个DataFrame,除第一数据外,其余行是前几行(包括本行)数据累加/积的结果。本例中,df.cumsum()和df.cumprod()的结果如下:
arr = np.arange(12).reshape(4,3)
df = pd.DataFrame(data = arr)
print(df)
print("")
print("df.cumsum():\n",df.cumsum())
print("")
print("df.cumprod():\n",df.cumprod())

在这里插入图片描述

  1. .cummax()和.cummin()函数分别返回一个DataFrame,返回值分别为对应列上前几行数据的最大值和最小值。本例中,df.cummax()和df.cummin()的结果如下:

代码演示:

arr = np.arange(12).reshape(4,3)
df = pd.DataFrame(data = arr)
print(df)
print("")
##最大值
print("df.cummax():\n",df.cummax())
print("")

#最小值
print("df.cummin():\n",df.cummin())

在这里插入图片描述

  1. 此外,Pandas在统计操作中,还支持滚动计算,利用的函数主要是.rollong(w).sum()等类似函数,其中,w主要是指参与运算的元素数量,其返回值是一个DataFrame,缺失值以NaN补全,df.rolling(2).sum()的结果下:

代码演示:

arr = np.arange(12).reshape(4,3)
df = pd.DataFrame(data = arr)
print(df)
print("")
print(df.rolling(2).sum())

在这里插入图片描述

1.3.3 检查和处理空值

  1. 要检查Pandas DataFrame中是否存在空值,你可以使用 .isnull() 方法结合 .sum() 方法来统计每一列中的空值数量。这里有一个步骤说明如何操作:
    (1)使用.isnull()方法来创建一个布尔DataFrame,其中True表示缺失值,False表示非缺失值。
    (2)对于每个列,使用.sum()方法来计算有多少个True(即缺失值的数量)。
    (3)如果想检查整个DataFrame是否有任何缺失值,可以检查.isnull().sum().sum()的结果是否大于零。

代码演示:

data = {
    "name":["小李","小红","小明","小刚"],
    "age":[18,None,18,20],
    "class":[None,2,None,3]
}
#创建一个DataFrame
df = pd.DataFrame(data)
print(df)
print(".isnull(), 以表格形式打印空值 :\n",df.isnull())
print(".isnull().sum() 统计每行的空值的个数:\n", df.isnull().sum())
print(".isnull().sum().sum() 统计全部的空值的个数:\n", df.isnull().sum().sum())

在这里插入图片描述

  1. (1)你可以选择用一个固定的值来填充所有的空值,比如0或者某个特定的字符串。
    (2)ffill (前向填充) 或者 bfill (后向填充) 可以用来用前一个或后一个有效值来填充空值。
    (3)可以用某一列的平均值、中位数或众数来填充空值。

代码演示:

data = {
    "name":["小李","小红","小明","小刚"],
    "age":[18,None,18,20],
    "class":[None,2,None,3]
}
#创建一个DataFrame
df = pd.DataFrame(data)
print(df)
# df1 = df.fillna(0,inplace=True) #这里的inplace参数会直接改变原df的值
df1 = df.fillna(0)
print(".fillna(0), 把全部空值填为0:\n" ,df1)
df2 = df.ffill()
print("ffill(), 用前一行对应的数值填充:\n",df2)

在这里插入图片描述

1.4 分组与聚合

1.4.1 数据分组

可以使用groupby()根据索引或字段对数据进行分组,具体的用法如下所示:
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=<no_default>, observed=False, dropna=True)

说明如下:
在这里插入图片描述
groupby分组后的结果不再是DataFrame类型,而是一个DataFrameGroupBy对象。可以按单列分组,也可以同时按多个列进行分组,如df.groupby([“A”, “B”])表示按A和B两列进行分组。

代码演示:

data = {'A':["数学", "语文","数学", "英语","数学", "语文","英语"],
        'B':[2001,2003,2005,2003,2001,2005,2004],
        'C':np.arange(7,14)}
df = pd.DataFrame(data = data)
A_group = df.groupby("A")
print(type(A_group))

在这里插入图片描述

1.4.2 数据聚合

分组后的结果不能直接查看,可以使用聚合运算对分组后数据进行计算,并查看可聚合计算后的结果,常用的数据聚合方法如下表所示:
在这里插入图片描述
单个分组,代码演示:

data = {'A':["数学", "语文","数学", "英语","数学", "语文","英语"],
        'B':[2001,2003,2005,2003,2001,2005,2004],
        'C':np.arange(7,14)}
df = pd.DataFrame(data = data)
## 把A分组
A_group = df.groupby("A")
print("使用A的分组, A_group.sum():\n",A_group.count())
## 把B分组
B_group = df.groupby("B")
print("使用B的分组, B_group.sum():\n",B_group.count())

在这里插入图片描述

同时多个分组,代码演示:

data = {'A':["数学", "语文","数学", "英语","数学", "语文","英语"],
        'B':[2001,2003,2005,2003,2001,2005,2004],
        'C':np.arange(7,14)}
df = pd.DataFrame(data = data)
## 把A和B同时分组
AB_group = df.groupby(["A","B"])
print("使用AB的分组, AB_group.sum():\n",AB_group.count())

在这里插入图片描述

1.5 透视交叉表

1.5.1 透视表

数据透视表是常用的数据分析工具之一,它可以根据一个或多个指定的维度对数据进行聚合。在python中可以通过pandas.pivot_table函数来实现数据透视表。pandas.pivot_table函数包含5个主要参数及其他可选参数,如下所示:
pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc=‘mean’, fill_value=None, margins=False, dropna=True, margins_name=‘All’, observed=False, sort=True)

说明如下:
在这里插入图片描述
这里我们用df. pivot_table()演示:

  1. 设置一个学校成绩表,里面包含了每人的成绩和班级。假设我们想得到每个班级的最高分和平均分

代码演示:

## 设置一个学校成绩表,里面包含了每人的成绩和班级
data = {
        "score":[93,95,92,91,96,98],
        "name":["小明","小华","小红","小东","小刚","小强"],
        "class":[3,2,1,1,2,1],
}

#sort_values("score",ascending = False) 把分数按降序排序
#reset_index(drop = True)  把索引设置为0可是的升序
df = pd.DataFrame(data= data).sort_values("score",ascending = False).reset_index(drop = True)
print(df)

#班级作为行进行聚合,列为score,aggafun默认是平均值: 打印每班级的平均值
p1 = df.pivot_table(["score"],index = ["class"])
print('班级作为行进行聚合,列为score,aggafun默认是平均值:\n',p1)

#班级作为行进行聚合,列为score,aggafun= max: 打印每班级的最大值
p2 = df.pivot_table(["score"],index = ["class"],aggfunc = "max")
print('班级作为行进行聚合,列为score,aggafun= max:\n',p2)

在这里插入图片描述

  1. 假设我们想得到每个班级的人和分数,可以设置 班级姓名 为行索引

代码演示:

## 设置一个学校成绩表,里面包含了每人的成绩和班级
data = {
        "score":[93,95,92,91,96,98],
        "name":["小明","小华","小红","小东","小刚","小强"],
        "class":[3,2,1,1,2,1],
}

# sort_values("score1",ascending = False) 把分数按降序排序
# reset_index(drop = True)  把索引设置为0可是的升序
df = pd.DataFrame(data= data).sort_values("score",ascending = False).reset_index(drop = True)
print(df)

#班级和姓名作为行进行聚合,列为score,aggafun默认: 打每班级各个人集合在一起,并打印每人的成绩
p2 = df.pivot_table(["score"],index = ["class","name"])
print('班级和姓名作为行进行聚合,列为score,aggafun默认:\n',p2)

在这里插入图片描述

  1. 同时设置对列的操作,这里设置对score求最大值和平均值。

代码演示:

## 设置一个学校成绩表,里面包含了每人的成绩和班级
data = {
        "score1":[93,95,92,91,96,98],
        "score2":[93,9,92,91,96,98],
        "name":["小明","小华","小红","小东","小刚","小强"],
        "class":[3,2,1,1,2,1],
}

#sort_values("score1",ascending = False) 把分数按降序排序
#reset_index(drop = True)  把索引设置为0可是的升序
df = pd.DataFrame(data= data).sort_values("score1",ascending = False).reset_index(drop = True)
print(df)

# #班级作为行进行聚合,列为score,aggafun= {"score1": "max","score2": "mean"}: 同时打印每班级的最大值和平均值
p3 = df.pivot_table(["score1","score2"],index = ["class"],aggfunc ={"score1": "max","score2": "mean"})
print('班级作为行进行聚合,列为score,aggafun={"score1": "max","score": "mean"}:\n',p3)

在这里插入图片描述

1.5.2 交叉表

交叉表是一种特殊的透视表,主要用于计算分组频率。pandas. crosstab函数可以用于制作交叉表,该函数的参数和使用格式如下。
pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, margins_name=‘All’, dropna=True, normalize=False)

  1. 设置一个学校成绩表,里面包含了每人的成绩和班级。在每个班级中各个分数段有多少人

代码演示:

## 设置一个学校成绩表,里面包含了每人的成绩和班级
data = {
        "score":[93,95,92,91,95,98],
        "name":["小明","小华","小红","小东","小刚","小强"],
        "class":[3,2,1,1,2,1],
}

# sort_values("score1",ascending = False) 把分数按降序排序
# reset_index(drop = True)  把索引设置为0可是的升序
df = pd.DataFrame(data= data).sort_values("score",ascending = False).reset_index(drop = True)
print(df)
print("")
# 在每个班级中各个分数段有多少人
p = pd.crosstab(index = df["class"], columns =df["score"])
print("在每个班级中各个分数段有多少人:\n",p)

在这里插入图片描述

  1. 设置一个学校成绩表,里面包含了每人的成绩和班级。在每个班级中各个分数段有多少人,可以使用normalize参数对频率表进行规范化,以显示百分比,而不是计数。另外,还可以将margins参数设置为True,则可以打开汇总(Total)功能。

代码演示:

## 设置一个学校成绩表,里面包含了每人的成绩和班级
data = {
        "score":[93,95,92,91,95,98],
        "name":["小明","小华","小红","小东","小刚","小强"],
        "class":[3,2,1,1,2,1],
}

# sort_values("score1",ascending = False) 把分数按降序排序
# reset_index(drop = True)  把索引设置为0可是的升序
df = pd.DataFrame(data= data).sort_values("score",ascending = False).reset_index(drop = True)
print(df)
print("")
# 在每个班级中各个分数段占的百分比
p = pd.crosstab(index = df["class"], columns =df["score"],normalize = True, margins = True)
print("normalize = True,margins = True;在每个班级中各个分数段有多少人:\n",p)

在这里插入图片描述

2 实战演练

2.1 实战 1

  1. 先生成一个数据存入文件

代码演示:

# 设置随机种子以保证结果可复现
np.random.seed(0)

# 定义数据列和行数
columns = ['ID', 'Name', 'Age', 'Height', 'City']
n_rows = 1000  # 假设我们想要生成1000行数据

# 生成一些示例数据
data = {
    'ID': range(1, n_rows + 1),
    'Name': [f'Person_{i}' for i in range(n_rows)], #把人名设置为 Person_**  的形式
    'Age': np.random.randint(18, 60, size=n_rows), #创建年龄,size参数设置数组元素个数
    'Height': np.random.randint(170, 191, size= n_rows),  # 身高170-190, size参数设置数组元素个数
    'City': np.random.choice(['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen'],size=n_rows) # 随机城市已被限定
}

# 创建DataFrame
df = pd.DataFrame(data)

#DataFrame对象存入文本文件
df.to_csv("test_1.txt", index = False)
print("存入成功")
  1. 从文件读取数据

代码演示:

##读取数据
df = pd.read_csv("D:/Python_Pycharm/Code/Python_Code/论文_1/数据分析资料包/test_1.txt")
print("读取成功")
print(df)

在这里插入图片描述

  1. 检查数据是否有空值
    代码演示:
#检查数据共有多少空值
print("数据的空值个数:", df.isnull().sum().sum())
  1. 查找身高的最大值和最小值的个人信息

代码演示:

# 找出身高最大值和最小值
Height_max = df["Height"].max()
Height_min = df["Height"].min()

# 提取所有身高最大值的行
#根据身高列的最大值和最小值筛选出满足条件的所有行记录。
Height_max_rows = df[df["Height"]==Height_max ]
Height_min_rows = df[df["Height"]==Height_min ]

print("所有身高最大值的行:\n",Height_max_rows)
print("所有身高最小值的行:\n",Height_min_rows)

在这里插入图片描述
在这里插入图片描述

  1. 得到最大值和最小值的总数

代码演示:

# 找出身高最大值和最小值
Height_max = df["Height"].max()
Height_min = df["Height"].min()

# 使用了布尔索引 (df['Height'] == max_height) 来生成一个布尔Series,对该Series求和
Height_max_sum = (df["Height"]== Height_max).sum()
Height_min_sum = (df["Height"]== Height_min).sum()

print("身高最大值的总数:", Height_max_sum)
print("身高最小值的总数:", Height_min_sum)

在这里插入图片描述

  1. 把数据以升高为参照排序

代码演示:

# 把数据以身高为参照

#降序
sort1 = df["Height"].sort_values(ascending = False)
print("把数据以身高为参照,排降序:\n",sort1)

#升序
#sort2 = df["Height"].sort_values(ascending = True)
sort2 = df["Height"].sort_values() # 参数默认为ascending = True
print("把数据以身高为参照,排升序:\n",sort2)

在这里插入图片描述

  1. 聚合地区可以查看每个地区的人数;聚合身高可以查看每个身高的人数

代码演示:

## 1.4 聚合地区可以查看每个地区的人数;聚合身高可以查看每个身高的人数

region1 = df.groupby("City")
print("集合地区,查看每个地区的人数:\n",region1.count())

region2 = df.groupby("Height")
print("聚合身高,可以查看每个身高的人数:\n",region2.count())

在这里插入图片描述
在这里插入图片描述

  1. 透视表

代码演示:

# index = ["City"] 城市设置为索引
# values = ["Height","Age"]  身高和年龄设为列组
# aggfunc = "mean"  把身高和年龄的聚合设置为平均数

pivot_tab = df.pivot_table(values = ["Height","Age"], index = ["City"], aggfunc = "mean")
print("透视表:\n", pivot_tab)

在这里插入图片描述

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

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

相关文章

【nginx】搭配okhttp 配置反向代理

nginx的默认是一个反向代理。 nginx会默认把输入的请求,转向其他的服务器执行。 这些转向的服务器与客户端发起的服务器不是同一个。 客户端只认识nginx,不知道ngiix转向何方。 正向代理修改okhttp的proxy,实际上很多代理都是正向的。 反向代理修改请求路径到nginx。 感觉还…

react-intl——react国际化使用方案

国际化介绍 i18n&#xff1a;internationalization 国家化简称&#xff0c;首字母首尾字母间隔的字母个数尾字母&#xff0c;类似的还有 k8s(Kubernetes) <br /> React-intl是 React 中最受欢迎的库。 使用步骤 安装 # use npm npm install react-intl -D # use yarn项目…

Weblogic部署

要安装weblogic&#xff0c;首先要有java环境&#xff0c;因此需要先安装jdk。 这里需要注意&#xff0c;weblogic版本不同&#xff0c;对应的jdk版本也不同&#xff0c;我在这里就踩了很多坑&#xff0c;我这里下载的是fmw_12.2.1.4.0_wls_lite_generic.jar对应的是jdk-8u333…

Minitab 的直方图结果分析解释

Minitab 的直方图结果分析解释 步骤 1&#xff1a;评估关键特征 检查分布的尖峰和散布。评估样本数量对直方图外观的影响。 标识尖峰&#xff08;即&#xff0c;条的最高聚类&#xff09;&#xff1a; 尖峰表示样本中最常见的值。评估样本的散布以了解数据的变异程度。例如…

1.1 计算机网络基本概述

欢迎大家订阅【计算机网络】学习专栏&#xff0c;开启你的计算机网络学习之旅&#xff01; 文章目录 前言一、网络的基本概念二、集线器、交换机和路由器三、互连网与互联网四、网络的类型五、互连网的组成1. 边缘部分2. 核心部分 六、网络协议 前言 计算机网络是现代信息社会…

时序必读论文08|ITransformer论文解读和我对时序工作未来的展望

论文标题&#xff1a;iTransformer: Inverted Transformers Are Effective for Time Series Forecasting 下载地址&#xff1a;https://arxiv.org/abs/2310.06625 开源代码&#xff1a;https://github.com/thuml/iTransformer 前言 ITransformer这篇文章我很早之前就留意到…

如何用Appium实现移动端UI自动化测试?

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 Appium是一个开源跨平台移动应用自动化测试框架。 既然只是想学习下Appium如何入门&#xff0c;那么我们就直奔主题。文章结构如下&#xff1a; 为什么要使用App…

java程序员入行科目一之CRUD轻松入门教程(一)

之前在操作MySQL的时候&#xff0c;都是采用Navicat&#xff0c;或者cmd黑窗口。 无论使用什么方式和MySQL交互&#xff0c;大致步骤是这样的 建立连接&#xff0c;需要输入用户名和密码编写SQL语句&#xff0c;和数据库进行交互 这个连接方式不会变&#xff0c;但是现在需要 基…

苹果系统(MacOS)中的Finder如何方便展现根目录

前言 初用Finder的时候&#xff0c;感觉非常的不方便。没有Windows的文件管理器来的简单明了。 本文&#xff0c;就是针对找不到文件根目录和隐藏文件夹的设置&#xff0c;进行了说明&#xff0c;供大家参考。 1、设置前 打开Finder&#xff0c;看不到DISK&#xff0c;也就是…

理解前向传播、反向传播和计算图

1. 什么是前向传播&#xff1f; 前向传播&#xff08;Forward Propagation&#xff09;是神经网络的推理过程。它将输入数据逐层传递&#xff0c;通过每一层的神经元计算&#xff0c;最终生成输出。 前向传播的公式 假设我们有一个简单的三层神经网络&#xff08;输入层、一…

一种简单的过某宝验证码的方式(仅做学习使用)

开篇 今天介绍一种简单的过某宝验证码的方式&#xff0c;用的是自动化&#xff0c;这样对不会js逆向的小白非常友好&#xff0c;只需要用到selenium框架就能轻松过某宝验证码&#xff0c;即模拟人的操作对滑块进行滑动。 但是首先还是需要训练验证码和标题 训练前&#xff1a…

各个大厂软件测试面试题,面试经验分享

前言 一、华为测试岗电话面试 一面 1&#xff09;自我介绍 2&#xff09;项目流程 >讲下H模型 3&#xff09;业务流程 >项目讲解、可从贷款流程讲起 4&#xff09;做过自动化吗&#xff1f; 5&#xff09;做过接口测试吗&#xff1f; 可从postman和jmeter做手工接口测…

数业智能心大陆探索生成式AIGC创新前沿

近日&#xff0c;数业智能心大陆参与了第九届“创客中国”生成式人工智能&#xff08;AIGC&#xff09;中小企业创新创业大赛。在这场汇聚了众多创新力量的研讨过程中&#xff0c;广东数业智能科技有限公司基于多智能体的心理健康技术探索与应用成果&#xff0c;从众多参赛者中…

KTM580030bit 绝对角度细分器支持最多 4096 对极与一键非线性自校准集成双 16bit 2M SAR ADC

KTM5800 是一款 30bit 绝对角度细分 4096 对极编码细分器&#xff0c;可以与磁电阻传感器&#xff08; AM R/TMR &#xff09;搭配&#xff0c;构成一个高速高精度的非接触磁性编码器模块。它具有以非常高的采样速率 读取传感器上的差分模拟正弦和余弦信号的能力&#xf…

vue3提交按钮限制重复点击

下载lodash npm install lodash 引入并使用 <template><div click"submit()">提交</div> </template><script setup>import { debounce } from lodash;const submit debounce(() > {//业务代码},2000,{leading: true,trailing:…

ETL数据集成丨建设BI的关键前提是ETL数据集成?

背景 很多企业都购买了商业智能&#xff08;BI&#xff09;来加速数字化转型&#xff0c;但是发现仅仅依赖BI效果往往不太好。虽然通过BI&#xff0c;企业能够快速分析和可视化数据&#xff0c;然而&#xff0c;BI并不是一个万能工具&#xff0c;它虽然能帮助企业解读数据&…

rancker 图形化界面

rancker 图形化界面 图形化界面进行k8s集群的管理 rancher自带监控————普罗米修斯 #在master和两个node上都操作 [rootmaster01 opt]# rz -E rz waiting to receive. [rootmaster01 opt]# docker load -i rancher.tar ​ #在master上操作 [rootmaster01 opt]# docker pul…

90v转5v500MA内置mos芯片方案

在设计一个90V转5V500mA的DC/DC转换器方案时&#xff0c;可以考虑使用AH7550这款150KHz固定频率PWM降压&#xff08;降压&#xff09;DC/DC转换器。AH7550能够以高效率、低纹波和出色的线路和负载调节驱动0.4A负载&#xff0c;且需要最少数量的外部组件&#xff0c;使用简单&am…

【物联网技术大作业】设计一个智能家居的应用场景

前言&#xff1a; 本人的物联网技术的期末大作业&#xff0c;希望对你有帮助。 目录 大作业设计题 &#xff08;1&#xff09;智能家居的概述。 &#xff08;2&#xff09;介绍智能家居应用。要求至少5个方面的应用&#xff0c;包括每个应用所采用的设备&#xff0c;性能&am…

CAPL_构建基于UDS的刷写学习—01 Hex文件的解析

前言&#xff1a; 打算写一个系列&#xff1a;CAPL_构建基于UDS的刷写学习&#xff0c;大致写一下写作的思路 1&#xff1a;本文是第1篇首先讲解基础。首先搞清楚&#xff0c;各种不同文件&#xff08;常见的S19,hex,bin,以及汽车行业主机厂自己的各种文件CBF(奇瑞特有),VBF&…