数据挖掘-padans初步使用

news2024/11/29 10:45:14

目录标题

  • Jupyter Notebook
      • 安装
      • 启动
    • Pandas快速入门
      • 查看数据
      • 验证数据
      • 建立索引
      • 数据选取
      • ⚠️注意:
      • 排序
      • 分组聚合
      • 数据转换
      • 增加列
      • 绘图
        • 'line' 或 ''**(默认):绘制折线图。
        • 'bar':绘制条形图。
        • 'barh':绘制水平条形图。
        • 'hist':绘制直方图。
        • 'box':绘制箱形图(Boxplot)。
        • 'kde' 或 'density':绘制核密度估计图(Kernel Density Estimate)。
        • 'area':绘制面积图。面积图下方区域将被填充。
        • 'pie':绘制饼图。饼图通常用于显示部分与整体之间的关系。
        • 'scatter':绘制散点图。散点图用于显示两个变量之间的关系。
        • 'hexbin':绘制六边形分箱图(Hexbin plot)。
      • 写出数据

Jupyter Notebook

Jupyter(https://jupyter.org)项目是一个非营利性开源项目,于2014年由IPython项目中诞生,它能支持所有编程语言的交互式数据科学和科学计算。它的特点是能够在网页上直接执行编写的代码,同时支持动态交互,在做数据可视化时尤其方便
在这里插入图片描述

安装

# 安装Jupyter Notebook,使用清华大学下载源加快下载速度
pip install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple

# 安装 Jupyter Lab 的命令如下
pip install jupyterlab

启动

jupyter notebook

这样就会在浏览器中打开一个网页

Pandas快速入门

import pandas as pd # 引入Pandas库,按惯例起别名pd

# 以下两种效果一样,如果是网址,它会自动将数据下载到内存
# df = pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')
df = pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下
# 如果是CSV,使用pd.read_csv(),还支持很多类型的数据读取
df

在这里插入图片描述

查看数据

import pandas as pd # 引入Pandas库,按惯例起别名pd

# 以下两种效果一样,如果是网址,它会自动将数据下载到内存
# df = pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')
df = pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下
# 如果是CSV,使用pd.read_csv(),还支持很多类型的数据读取
print(df.head()) # 打印前5行数据
print('================================================================')
print(df.tail()) # 打印后5行数据
print('================================================================')
print(df.sample()) # sample
print('================================================================')

在这里插入图片描述

验证数据

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Date          : 2024/10/4
@File          : pandas_start_one.py
@Author        : lw
@Description   : 
"""


import pandas as pd # 引入Pandas库,按惯例起别名pd

# 以下两种效果一样,如果是网址,它会自动将数据下载到内存
# df = pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')
df = pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下
# 如果是CSV,使用pd.read_csv(),还支持很多类型的数据读取
print('查看数据类型')
print(df.dtypes) # 查看数据类型
print('================================')
print('查看数据信息')
print(df.info) # 查看数据信息
print('================================')
print('查看数据统计信息')
print(df.describe()) # 查看数据统计信息 df.describe()会计算出各数字字段的总数(count)​、平均数 (mean)​、标准差(std)​、最小值(min)​、四分位数和最大值(max
print('================================')
print('查看数据索引')
print(df.axes)
print('================================')
print('查看数据列名')
print(df.columns)

查看数据类型
name object
team object
Q1 int64
Q2 int64
Q3 int64
Q4 int64
dtype: object
================================
查看数据信息
<bound method DataFrame.info of name team Q1 Q2 Q3 Q4
0 Liver E 89 21 24 64
1 Arry C 36 37 37 57
2 Ack A 57 60 18 84
3 Eorge C 93 96 71 78
4 Oah D 65 49 61 86
… … … … … … …
95 Gabriel C 48 59 87 74
96 Austin7 C 21 31 30 43
97 Lincoln4 C 98 93 1 20
98 Eli E 11 74 58 91
99 Ben E 21 43 41 74
[100 rows x 6 columns]>
================================
查看数据统计信息
Q1 Q2 Q3 Q4
count 100.000000 100.000000 100.000000 100.000000
mean 49.200000 52.550000 52.670000 52.780000
std 29.962603 29.845181 26.543677 27.818524
min 1.000000 1.000000 1.000000 2.000000
25% 19.500000 26.750000 29.500000 29.500000
50% 51.500000 49.500000 55.000000 53.000000
75% 74.250000 77.750000 76.250000 75.250000
max 98.000000 99.000000 99.000000 99.000000
================================
查看数据索引
[RangeIndex(start=0, stop=100, step=1), Index([‘name’, ‘team’, ‘Q1’, ‘Q2’, ‘Q3’, ‘Q4’], dtype=‘object’)]
================================
查看数据列名
Index([‘name’, ‘team’, ‘Q1’, ‘Q2’, ‘Q3’, ‘Q4’], dtype=‘object’)
Process finished with exit code 0

建立索引

以上数据真正业务意义上的索引是name列,所以我们需要使它成为索引:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pandas as pd # 引入Pandas库,按惯例起别名pd

# 以下两种效果一样,如果是网址,它会自动将数据下载到内存
# df = pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')
df = pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下
# 如果是CSV,使用pd.read_csv(),还支持很多类型的数据读取
print('\n 原始表格 \n')
print(df)
print('\n 姓名为索引 \n')
df.index = df['name']
print(df)

原始表格
name team Q1 Q2 Q3 Q4
0 Liver E 89 21 24 64
1 Arry C 36 37 37 57
2 Ack A 57 60 18 84
3 Eorge C 93 96 71 78
4 Oah D 65 49 61 86
… … … … … … …
95 Gabriel C 48 59 87 74
96 Austin7 C 21 31 30 43
97 Lincoln4 C 98 93 1 20
98 Eli E 11 74 58 91
99 Ben E 21 43 41 74
[100 rows x 6 columns]
姓名为索引
name team Q1 Q2 Q3 Q4
name
Liver Liver E 89 21 24 64
Arry Arry C 36 37 37 57
Ack Ack A 57 60 18 84
Eorge Eorge C 93 96 71 78
Oah Oah D 65 49 61 86
… … … … … … …
Gabriel Gabriel C 48 59 87 74
Austin7 Austin7 C 21 31 30 43
Lincoln4 Lincoln4 C 98 93 1 20
Eli Eli E 11 74 58 91
Ben Ben E 21 43 41 74
[100 rows x 6 columns]
Process finished with exit code 0

数据选取

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
 


import pandas as pd # 引入Pandas库,按惯例起别名pd

# 以下两种效果一样,如果是网址,它会自动将数据下载到内存
# df = pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')
df = pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下
# 如果是CSV,使用pd.read_csv(),还支持很多类型的数据读取
# 查看指定列
print('查看 name列')
print(df['name'])
print('================================')
print('查看 name和Q1列')
print(df[['name','Q1']])
print('================================')

# 用指定索引选取
df[df.index == 'Liver'] # 指定姓名

# 用自然索引选择,类似列表的切片
print('查看前三行')
print(df[0:3]) # 取前三行
print('================================')
print('每两个取一个')
print(df[0:10:2]) # 在前10个中每两个取一个
print('================================')
print('查看前10行')
print(df.iloc[:10,:]) # 前10个
查看 name列
0        Liver
1         Arry
2          Ack
3        Eorge
4          Oah
        ...   
95     Gabriel
96     Austin7
97    Lincoln4
98         Eli
99         Ben
Name: name, Length: 100, dtype: object
================================
查看 name和Q1列
        name  Q1
0      Liver  89
1       Arry  36
2        Ack  57
3      Eorge  93
4        Oah  65
..       ...  ..
95   Gabriel  48
96   Austin7  21
97  Lincoln4  98
98       Eli  11
99       Ben  21

[100 rows x 2 columns]
================================
查看前三行
    name team  Q1  Q2  Q3  Q4
0  Liver    E  89  21  24  64
1   Arry    C  36  37  37  57
2    Ack    A  57  60  18  84
================================
每两个取一个
     name team  Q1  Q2  Q3  Q4
0   Liver    E  89  21  24  64
2     Ack    A  57  60  18  84
4     Oah    D  65  49  61  86
6    Acob    B  61  95  94   8
8  Reddie    D  64  93  57  72
================================
查看前10行
     name team  Q1  Q2  Q3  Q4
0   Liver    E  89  21  24  64
1    Arry    C  36  37  37  57
2     Ack    A  57  60  18  84
3   Eorge    C  93  96  71  78
4     Oah    D  65  49  61  86
5  Harlie    C  24  13  87  43
6    Acob    B  61  95  94   8
7    Lfie    A   9  10  99  37
8  Reddie    D  64  93  57  72
9   Oscar    A  77   9  26  67

Process finished with exit code 0

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Date          : 2024/10/4
@File          : pandas_start_one.py
@Author        : liwei68
@Description   : 
"""


import pandas as pd # 引入Pandas库,按惯例起别名pd

# 以下两种效果一样,如果是网址,它会自动将数据下载到内存
# df = pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')
df = pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下
# 如果是CSV,使用pd.read_csv(),还支持很多类型的数据读取
print('条件选择')
print(df[df['Q1'] > 80]) # 选择Q1列中大于80的行
print(df[df['Q1'] > 80]['name']) # 选择Q1列中大于80的行 name列
print(df[df['Q1'] > 80][['name','Q1']]) # 选择Q1列中大于80的行 name和Q1列

⚠️注意:

选择一列和切片一样的使用方式,多列的时候要使用二维数组切片形式

排序

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Date          : 2024/10/4
@File          : pandas_start_one.py
@Author        : liwei68
@Description   : 
"""


import pandas as pd # 引入Pandas库,按惯例起别名pd

# 以下两种效果一样,如果是网址,它会自动将数据下载到内存
# df = pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')
df = pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下
# 如果是CSV,使用pd.read_csv(),还支持很多类型的数据读取

df = df.sort_values(by = 'Q1') # 按照Q1列进行排序
print(df)
df = df.sort_values(by = 'Q1',ascending=False)  # 降序排序
print(df)

df = df.sort_values(by = ['name','Q2'],ascending=[True,False]) # 先按照name升序,再按照Q2降序
print(df)
         name team  Q1  Q2  Q3  Q4
37  Sebastian    C   1  14  68  48
39     Harley    B   2  99  12  13
85       Liam    B   2  80  24  25
58      Lewis    B   4  34  77  28
82       Finn    E   4   1  55  32
..        ...  ...  ..  ..  ..  ..
3       Eorge    C  93  96  71  78
88      Aaron    A  96  75  55   8
38     Elijah    B  97  89  15  46
19        Max    E  97  75  41   3
97   Lincoln4    C  98  93   1  20

[100 rows x 6 columns]
         name team  Q1  Q2  Q3  Q4
97   Lincoln4    C  98  93   1  20
19        Max    E  97  75  41   3
38     Elijah    B  97  89  15  46
88      Aaron    A  96  75  55   8
3       Eorge    C  93  96  71  78
..        ...  ...  ..  ..  ..  ..
82       Finn    E   4   1  55  32
58      Lewis    B   4  34  77  28
85       Liam    B   2  80  24  25
39     Harley    B   2  99  12  13
37  Sebastian    C   1  14  68  48

[100 rows x 6 columns]
       name team  Q1  Q2  Q3  Q4
88    Aaron    A  96  75  55   8
2       Ack    A  57  60  18  84
6      Acob    B  61  95  94   8
33     Adam    C  90  32  47  39
94    Aiden    D  20  31  62  68
..      ...  ...  ..  ..  ..  ..
40     Toby    A  52  27  17  68
46    Tommy    C  29  44  28  76
79    Tyler    A  75  16  44  63
18  William    C  80  68   3  26
55  Zachary    E  12  71  85  93

[100 rows x 6 columns]

Process finished with exit code 0

分组聚合

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Date          : 2024/10/4
@File          : pandas_start_one.py
@Author        : li
@Description   : 
"""


import pandas as pd # 引入Pandas库,按惯例起别名pd

# 以下两种效果一样,如果是网址,它会自动将数据下载到内存
# df = pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')
df = pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下
# 如果是CSV,使用pd.read_csv(),还支持很多类型的数据读取

print(df.groupby('team').sum('Q1'))
print(df.groupby('team').mean('Q1'))
print(df.groupby(['team','name']).mean())
# 不同列不同的计算方法
df1 = df.groupby('team').agg({'Q1': sum,  # 总和
                        'Q2': 'count', # 总数
                        'Q3':'mean', # 平均
                        'Q4': max}) # 最大值

print(df1)

数据转换

import pandas as pd
df = pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下

df1 = df.groupby('team').agg({'Q1': sum,  # 总和
                        'Q2': 'count', # 总数
                        'Q3':'mean', # 平均
                        'Q4': max}) # 最大值

print(df1)
print(df1.T)

df.T 转置

转置前

        Q1  Q2         Q3  Q4
team                         
A     1066  17  51.470588  97
B      975  22  54.636364  99
C     1056  22  48.545455  98
D      860  19  65.315789  99
E      963  20  44.050000  98

转置后

team            A           B            C           D       E
Q1    1066.000000  975.000000  1056.000000  860.000000  963.00
Q2      17.000000   22.000000    22.000000   19.000000   20.00
Q3      51.470588   54.636364    48.545455   65.315789   44.05
Q4      97.000000   99.000000    98.000000   99.000000   98.00

增加列

直接切片增加索引的方式

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Date          : 2024/10/4
@File          : pandas_start_one.py
@Author        : liwei
@Description   : 
"""


import pandas as pd
df = pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下

df['one'] = 1 # 增加一个固定值的列
df['total'] = df.Q1 + df.Q2 + df.Q3 + df.Q4 # 增加总成绩列

# # 将计算得来的结果赋值给新列
df['total2'] = df.loc[:,'Q1':'Q4'].apply(lambda x:sum(x), axis=1)

df['avg'] = df.total/4 # 增加平均成绩列

print(df)

绘图

Pandas利用plot()调用Matplotlib快速绘制出数据可视化图形。注意,第一次使用plot()时可能需要执行两次才能显示图形。 可以使用plot()快速绘制折线图。

在Python中,使用pandas库的DataFrame对象的plot()方法可以很容易地绘制图表。默认情况下,df.plot()会将图表显示在Jupyter Notebook中,但不会自动保存为文件。如果你想保存图表,可以使用matplotlib.pyplot.savefig()函数。

以下是一个简单的例子

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Date          : 2024/10/4
@File          : pandas_start_one.py
@Author        : liwei 
@Description   : 
"""

import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下

df['one'] = 1 # 增加一个固定值的列
df['total'] = df.Q1 + df.Q2 + df.Q3 + df.Q4 # 增加总成绩列

# # 将计算得来的结果赋值给新列
df['total2'] = df.loc[:,'Q1':'Q4'].apply(lambda x:sum(x), axis=1)

df['avg'] = df.total/4 # 增加平均成绩列

df.plot()
plt.plot()
plt.savefig('team.png')

在这里插入图片描述

在pandas中,df.plot()是一个非常方便的函数,用于基于DataFrame或Series的数据快速生成图表。kind参数是df.plot()方法中一个非常重要的参数,它指定了要绘制的图表类型。kind参数可以接收多种不同的字符串值,以生成不同类型的图表。以下是一些常见的kind参数值及其对应的图表类型:

‘line’ 或 ‘’**(默认):绘制折线图。

如果DataFrame有多列,则每列都会被绘制为一条线。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Date          : 2024/10/4
@File          : pandas_start_one.py
@Author        : liwei
@Description   : 
"""

import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下

file_path_out = 'team_out.xlsx'
# groupby 分组,sum求和,reset_index重置索引
# 注意 此处如果不重置索引,df中将会没有groupBy的字段
df1 = df.groupby('team').sum('Q1').reset_index()

with pd.ExcelWriter(file_path_out) as writer:
    df1.to_excel(writer, sheet_name='结果', index=False)

print(df1)
df1.plot(x = 'team',y = 'Q1' ,kind = 'line')
plt.plot()
plt.savefig('team.png')

在这里插入图片描述

‘bar’:绘制条形图。

如果DataFrame有多列,则每列都会被绘制为独立的条形图组。

df1.plot(x = 'team',y = 'Q1' ,kind = 'bar')

在这里插入图片描述

‘barh’:绘制水平条形图。

与条形图类似,但条是水平的。

df1.plot(x = 'team',y = 'Q1' ,kind = 'barh')

在这里插入图片描述

‘hist’:绘制直方图。

这通常用于Series,但也可以用于DataFrame的每列,为每列绘制直方图。

df1.plot(x = 'team',y = 'Q1' ,kind = 'hist')

在这里插入图片描述

‘box’:绘制箱形图(Boxplot)。

箱形图用于显示数据分布的四分位数,并可能显示异常值。
在这里插入图片描述

‘kde’ 或 ‘density’:绘制核密度估计图(Kernel Density Estimate)。

这是一种用于估计单变量概率密度函数的非参数方法。
在这里插入图片描述

‘area’:绘制面积图。面积图下方区域将被填充。

如果DataFrame有多列,则堆叠这些区域(除非指定stacked=False)。
在这里插入图片描述

‘pie’:绘制饼图。饼图通常用于显示部分与整体之间的关系。

注意,饼图通常用于单个Series,因为DataFrame的每一行都会被解释为饼图的一部分。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Date          : 2024/10/4
@File          : pandas_start_one.py
@Author        : liwei 
@Description   : 
"""

import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_excel('team.xlsx') # 文件在notebook文件同一目录下

file_path_out = 'team_out.xlsx'
# groupby 分组,sum求和,reset_index重置索引
# 注意 此处如果不重置索引,df中将会没有groupBy的字段
# 各组人数对比
df.groupby('team').count().Q1.plot.pie()


plt.savefig('team_pie.png')

在这里插入图片描述

‘scatter’:绘制散点图。散点图用于显示两个变量之间的关系。

如果DataFrame有多列,则默认使用前两列作为x和y轴。
在这里插入图片描述

‘hexbin’:绘制六边形分箱图(Hexbin plot)。

这是一种用于表示两个变量之间关系的二维直方图。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Date          : 2024/10/4
@File          : pandas_start_one.py
@Author        : liwei 
@Description   : 
"""

import numpy as np
import matplotlib.pyplot as plt

# 生成一些随机数据
np.random.seed(19680801)
x = np.random.randn(10000)
y = np.random.randn(10000)

# 绘制Hexbin plot
plt.hexbin(x, y, gridsize=50, cmap='viridis')

# 添加颜色条
cb = plt.colorbar(label='counts in bin')

# 设置图表标题和坐标轴标签
plt.title("Hexbin of 10,000 points")
plt.xlabel("X")
plt.ylabel("Y")

# 显示图表
plt.show()

在这里插入图片描述

写出数据

with pd.ExcelWriter(file_path_out) as writer:
    df1.to_excel(writer, sheet_name='结果', index=False)

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

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

相关文章

Discord:报错:A fatal Javascript error occured(解决办法)

按 Windows 键 R 并输入 %appdata% 选择 discord 文件夹并将其删除。 再次按 Windows 键 R 并输入 %LocalAppData% 选择 discord 文件夹并再次将其删除。 附加&#xff1a; 如果还不行&#xff0c;就通过官网下载吧&#xff0c;这个问题通过epic下载可能会有

图文深入理解Oracle DB企业级集中管理神器-GC的安装和部署

值此国庆佳节&#xff0c;深宅家中&#xff0c;闲来无事&#xff0c;就多写几篇博文。今天继续宅继续写。 本文承接上篇&#xff0c;介绍GC的安装和部署。咱们不急&#xff0c;慢慢来&#xff0c;饭要一口一口地吃才能吃得踏实自然。 限于篇幅&#xff0c;本节将重点介绍关键步…

【ubuntu】apt是什么

目录 1.apt简介 2.常用apt指令 2.1安装 2.2更新列表 2.3更新已经安装的软件包 2.4搜索软件包 2.5显示软件包信息 2.6移除软件包 2.7清理无用的安装包 2.8清理无用的依赖项 3.apt和apt-get 3.1区别 3.2 总结 1.apt简介 apt的全称是advanced package …

JAVA的三大特性-封装、继承、多态

Java作为一种面向对象的编程语言&#xff0c;其核心特性包括封装、继承和多态。这三大特性是Java语言的基石&#xff0c;它们相互关联&#xff0c;共同构成了Java强大的面向对象能力。 封装&#xff08;Encapsulation&#xff09; 封装是面向对象编程的一个重要概念&#xff0c…

Pytorch最最适合研究生的入门教程,Q3 开始训练

文章目录 Pytorch最最适合研究生的入门教程Q3 开始训练3.1 训练的见解3.2 Pytorch基本训练框架work Pytorch最最适合研究生的入门教程 Q3 开始训练 3.1 训练的见解 如何理解深度学习能够完成任务&#xff1f; 考虑如下回归问题 由函数 y f ( x ) yf(x) yf(x)采样得到的100个…

现在的新电脑在任务管理器里又多了个NPU?它是啥?

前言 今年中旬各家品牌的新笔记本感觉上都是很不错&#xff0c;搞得小白自己心痒痒&#xff0c;突然间想要真的买一台Windows笔记本来耍耍了。 但今天这个文章并不是什么商品宣传啥的&#xff0c;而是小白稍微尝试了一下新笔记本之后的一些发现。 在今年的新笔记本上都多了一…

【GESP】C++一级练习BCQM3025,输入-计算-输出-6

题型与BCQM3024一样&#xff0c;计算逻辑上稍微复杂了一点点&#xff0c;代码逻辑没变&#xff0c;仍属于小学3&#xff0c;4年级的题目水平。 题解详见&#xff1a;https://www.coderli.com/gesp-1-bcqm3025/ https://www.coderli.com/gesp-1-bcqm3025/https://www.coderli.c…

数据提取之JSON与JsonPATH

第一章 json 一、json简介 json简单说就是javascript中的对象和数组&#xff0c;所以这两种结构就是对象和数组两种结构&#xff0c;通过这两种结构可以表示各种复杂的结构 > 1. 对象&#xff1a;对象在js中表示为{ }括起来的内容&#xff0c;数据结构为 { key&#xff1…

最新版本SkyWalking【10.1.0】部署

这里写目录标题 前言前置条件启动Skywalking下载解压启动说明 集成Skywalking Agent下载Agent在IDEA中添加agent启动应用并访问SpringBoot接口 说明 前言 基于当前最新版10.1.0搭建skywalking 前置条件 装有JDK11版本的环境了解SpringBoot相关知识 启动Skywalking 下载 地…

浑元换算策略和武德换算策略-《分析模式》漫谈36

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 “Analysis Patterns”的第3章有这么一句&#xff1a; A conversion, however deterministic, does not follow that faithfully. 2004&#xff08;机械工业出版社&#xff09;中译本…

HTB:Explosion[WriteUP]

目录 连接至HTB服务器并启动靶机 1.What does the 3-letter acronym RDP stand for? 2.What is a 3-letter acronym that refers to interaction with the host through a command line interface? 3.What about graphical user interface interactions? 4.What is the…

【MySQL 08】复合查询

目录 1.准备工作 2.多表查询 笛卡尔积 多表查询案例 3. 自连接 4.子查询 1.单行子查询 2.多行子查询 3.多列子查询 4.在from子句中使用子查询 5.合并查询 1.union 2.union all 1.准备工作 如下三个表&#xff0c;将作为示例&#xff0c;理解复合查询 EMP员工表…

深入探究:在双链表的前面进行插入操作的顺序

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd;惟有主动付出&#xff0c;才有丰富的果…

一次解决Go编译问题的经过

用Go语言编写了一个小的项目&#xff0c;项目开发环境是在本地的Windows环境中&#xff0c;一切单元测试和集成测试通过后&#xff0c;计划将项目部署到VPS服务器上自动运行&#xff0c;但在服务器上执行go run运行时&#xff0c;程序没有任何响应和回显&#xff0c;甚至main函…

有没有一款软件,可以在二楼电脑直接唤醒三楼的电脑?

前言 今天有个小姐姐找到我&#xff0c;咨询能不能在二楼的电脑直接访问到三楼电脑的资料。 这个肯定是可以的啊&#xff01; 其实事情很简单&#xff0c;只需要弄好共享文件夹这个功能&#xff0c;只要手机、平板或者电脑在同个局域网下&#xff0c;就能访问到三楼电脑里的…

深入理解Dubbo源码核心原理-Part4

现在开始研究&#xff0c;消费端真正调用proxy的方法时&#xff0c;走的rpc调用 接下来就要走client&#xff0c;发送request请求了 Dubbo协议是怎样的呢&#xff1f; 具体每个字段什么含义请参照官网 链接&#xff1a;Dubbo协议头含义 编码器按照Dubbo协议来进行编码请求 Ne…

JVM内存回收机制

目录 1.JVM运行时数据区 2.JVM类加载过程 3.双清委派模型 4.垃圾回收机制&#xff08;GC&#xff09; 找出谁是垃圾方案一&#xff1a;引用计数 找出谁是垃圾&#xff1a;方案二&#xff0c;可达性分析 释放垃圾的内存空间 判断垃圾&#xff1a;jvm依据对象的年龄对 对象…

基于Zynq SDIO WiFi移植三(支持2.4/5G)

应用问题-WIFI作为AP-hostapd多次连接 设备作为WIFI热点时&#xff0c;连接出现了下述问题&#xff1a; 1 手机连接需要三次&#xff0c;三次都需要输入密码&#xff1b; 2 平板连接需要三次&#xff0c;三次都需要输入密码&#xff1b; 3 电脑连接需要一次&#xff0c;无感…

隧道人员定位UWB双通道定位终端

大家好&#xff0c;我是华星智控小智&#xff0c;今天我给大家介绍我们的UWB双通道定位终端。 双通道定位终端&#xff08;型号STD&#xff09;主要用于隧道人员或天车定位&#xff0c;终端基于无线脉冲技术&#xff0c;采用双天线设计&#xff0c;可实现对2路方向的测距定位&a…

实施威胁暴露管理、降低网络风险暴露的最佳实践

随着传统漏洞管理的发展&#xff0c;TEM 解决了因攻击面扩大和安全工具分散而产生的巨大风险。 主动式 TEM 方法优先考虑风险并与现有安全工具无缝集成&#xff0c;使组织能够在威胁被有效利用之前缓解威胁。 为什么威胁暴露管理 (TEM) 在现代网络安全策略中变得至关重要&…