【Matplotlib】一文带你掌握Matplotlib绘制各种图形

news2024/12/30 1:17:13

文章目录

  • 前言
  • 一、折线图
    • 1 - 单线
    • 2 - 多线
  • 二、柱状图(条形图)
    • 1 - 单柱
    • 2 - 多柱
    • 3 - 堆叠
    • 4 - 条形
  • 三、直方图
  • 四、箱型图
    • 1 - 单个
    • 2 - 多个
  • 五、散点图
    • 1 - 散点图
    • 2 - 气泡图
  • 六、饼图
    • 1 - 饼图
    • 2 - 甜甜圈 | 空心
    • 3 - 甜甜圈 | 实心
  • 七、面积图
  • 八、热力图
  • 九、极坐标图
  • 十、雷达图
  • 十一、等高线图
  • 十二、3D图
    • 1 - 三维折线图
    • 2 - 三维散点图
    • 3 - 三维柱状图
  • 图象处理
  • 结语

前言

😉大家好,我是向阳花,CSDN全栈领域新星创作者一枚😉。

在上一节中我们讲到了使用Matplotlib绘图配置的各项配置,如果没有看这篇文章的朋友,建议先学习这篇文章:一文搞定Matplotlib绘图配置(大三学长的万字笔记)

那么接下来,我们就开始使用 Matplotlib 进行各种基础图形的绘制。此外,我们还可以参考官网:matplotlib官网,进行绘制更多图象,结合文档学习,也是程序员们的一项重要技能哦!

在绘图之前,我们还是把相应的包导入,还有配置做好:

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
# 当浏览器不显示绘图图片时,加上这一行
%matplotlib inline

# 让图片可以显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
# 让图片可以显示负号
plt.rcParams['axes.unicode_minus'] = False

# 支持svg矢量图
%config InlineBackend.figure_format = 'svg'

一、折线图

折线图可以显示随时间(根据常用比例设置)而变化的连续数据,用折线的升降来体现数据变化的趋势。

下面我们来绘制折线图。

1 - 单线

fig = plt.figure(figsize=(4,3))

# 数据
x = [2018,2019,2020,2021,2022,2023]
y = [40,30,20,80,50,60]

# 绘制折线图
plt.plot(x,y,c='g',marker='D',markersize=3)

# 添加标签
plt.xlabel('年份')
plt.ylabel('报名人数')

# 添加标题
plt.title('某活动报名人数',fontsize=10)

# 添加文本
for a,b in zip(x,y):
    plt.text(
        x=a+0.3,
        y=b+0.5, # 根据(x,y)坐标确定文本的位置
        s=b, # 文本内容
        ha='center', # 水平对齐方式
        va='center' # 垂直对齐方式
    )

2 - 多线

当 plot() 函数只接收了一个数据时,那么X轴范围是 0-N(N是数据个数)。

fig = plt.figure(figsize=(4,3))

x = np.random.randint(0,10,15)

# 当 plot() 函数只接收了一个数据时,那么X轴范围是0-N(N是数据个数)
plt.plot(x,marker='*',c='r')
# cumsum:计算X的累加和
plt.plot(x.cumsum(),marker='o',c='b')

plt.xlabel('X')
plt.ylabel('Y')
plt.title('Change Trend')

二、柱状图(条形图)

柱状图利用柱子的高度,来反映数据的差异,也可用于比较数据的变化趋势。条形图和柱状图类似,是横向柱状图。

1 - 单柱

单柱即只绘制一种颜色的柱子(只有一类数据)。

# make data
x = ['C','Java','Shell','DB','Python']
y = [65,52,87,71,100]

# figure
fig = plt.figure(figsize=(4,3))

# labels
plt.xlabel('Project',fontsize=10)
plt.ylabel('Score',fontsize=10)

# add text
for a,b in zip(x,y):
    plt.text(
        x=a,
        y=b+2,
        s="{}分".format(b),
        ha='center',
        va='center'
    )
# plot
plt.bar(x,y,width=0.5)

2 - 多柱

多柱即一次绘制多个柱状图,也称为簇状柱形图。

fig = plt.figure(figsize=(4,3))

# make data
x = np.arange(2015,2024)
y1 = make_random()
y2 = make_random()

# 每一个柱子的宽度
# (默认值是0.6,我们要分为两个柱子,那么每一个柱子占0.3)
width = 0.3

# ticks
plt.xticks(x)
plt.yticks(np.arange(11))

# plot(x-width/2是将柱子往左移动)
plt.bar(x-width/2,y1,color='orange',width=width)
plt.bar(x+width/2,y2,color='green',width=width)

绘制效果如下:(因为是随机数,所以每个人绘制的效果是不一定一样的)

3 - 堆叠

首先编写生成随机数的函数:

def make_random():
    return np.random.randint(5,10,9)

接下来绘制两个柱状图:

fig = plt.figure(figsize=(4,3))

# make data
x = np.arange(2015,2024)
y1 = make_random()
y2 = make_random()

# plot
plt.bar(x,y1,color='b')
plt.bar(x,y2,color='g')

绘制结果如下:

我们会发现,虽然现在柱状图是堆叠的,但是有些蓝色部分被绿色部分完全挡住了,根本看不出来它的值是多少,所以说这样绘制肯定是不可取的,我们需要对代码进行修改。

其实,要实现堆叠效果,就是让第二次绘图时,Y2轴的取值建立在Y1之上,也就是对每一个Y2+Y1,所以我们只需要修改最后一行,加上 bottom 参数,这样即可实现堆叠效果。

plt.bar(x,y2,color='g',bottom=y1)

4 - 条形

条形图是水平方向的柱状图,和柱状图绘图方法类似,使用的是 barh() 方法。

# make data
x = ['C','Java','Shell','DB','Python']
y = [65,52,87,71,100]

# figure
fig = plt.figure(figsize=(4,3))

# labels
plt.xlabel('Project',fontsize=10)
plt.ylabel('Score',fontsize=10)

# add text
for a,b in zip(y,x):
    plt.text(
        x=a+5,
        y=b,
        s="{}分".format(a),
        ha='center',
        va='center'
    )
# plot
plt.barh(x,y)

三、直方图

直方图描述的是一组数据的出现次数分布。直方图有助于我们知道数据的分布情况,诸如众数、中位数的大致位置、数据是否存在缺口或者异常值。

fig = plt.figure(figsize=(4,3))

# make data
x = np.random.randint(0,11,100) # 1-10

# plot
plt.hist(x)
plt.show() # instantly show,no print other.

此外,还可以对直方图进行分组。

分组的意思就是划分区间,比如说[0-2]一组,那么在0-2范围内的数据都会被统计进来,作为一类数据。hist() 方法的 bins 参数就是用来分组的。

fig = plt.figure(figsize=(4,3))

# make data
x = np.random.randint(0,11,100) # 1-10

# divide groups
# 划分为4组,因为X取值范围是0-10,所以就是0-2.5,2.5-5,5-7.5,7.5-10这四组
bins = 4 

# ticks
plt.xticks(x)
# plot
plt.hist(x,bins=bins)
plt.show() # instantly show,no print other.

四、箱型图

箱型图,它能显示处一组数据的最大值,最小值,中位数,上下四分位数以及异常值。

1 - 单个

fig = plt.figure(figsize=(4,3))

x = [1,3,2,5,10,-10,23]

plt.boxplot(x)
plt.show()


上面的图中即包含了各种情况,那么什么样的数据会被判断为异常值?

异常值(用字母 K 表示),分为中度异常(K = 1.5)和重度异常(K = 3),有一个计算方法如下。

设:QL(下四分位数),QU(上四分位数),IQR(QU - QL)。那么中度异常
就是小于:
Q L − 1.5 I Q R QL-1.5IQR QL1.5IQR
或者大于:
Q U + 1.5 I Q R QU+1.5IQR QU+1.5IQR
重度异常同理,将1.5换成3即可。

2 - 多个

一次画多个箱型图,只需要为 boxplot() 函数传递一个列表即可。

fig = plt.figure(figsize=(4,3))

x1 = np.random.randint(10,100,100)
x2 = np.random.randint(10,100,100)
x3 = np.random.randint(10,100,100)

plt.boxplot(
    x = [x1,x2,x3],
    notch=True, # change a style
    )
plt.show() # instantly show,no print other.

五、散点图

1 - 散点图

散点图用于在水平轴和纵轴上绘制数据点,它表示了因变量随自变量变化的趋势。通俗的讲,它反映Y轴变量受X轴变量的影响程度。

fig = plt.figure(figsize=(4,3))

x = range(1,7,1)
y = range(10,70,10)

plt.scatter(x,y)

2 - 气泡图

它与散点图类似,绘制的时候,将一个变量放在横轴,另一个变量放在纵轴,而第三个变量则表示很多泡泡的大小(这意味着它是一个可迭代对象)。

fig = plt.figure(figsize=(4,3))

# Create a sample from the "standard normal" distribution.
data = np.random.randn(100,2)

# An array of bubble sizes
size = np.random.randint(50,200,100)

# An array of bubble colors
color = np.random.randn(100)

# plot
plt.scatter(
    x=data[:,0],
    y=data[:,1],
    s=size,
    c=color,
    alpha=0.5
)

六、饼图

1 - 饼图

饼状图用来显示一个数据系列,具体来说,饼状图显示一个数据系列中各项占项目总和的百分比。

plt.figure(figsize=(4, 3))

# make data
x = np.random.randint(10,30,5)
citys = ['Beijing','Shanghai','Shenzhen','Nanjing','Guangzhou']

plt.pie(
    x=x,
    autopct='%.1f%%', # 显示百分比
    pctdistance=0.6, # 文字距离圆心的距离
    labels=citys, # 标签
    labeldistance=1.3, # 标签距离圆心的位置
    textprops={'fontsize':12,'color':'black'}, # 文字样式
    explode=[0,0,0.05,0,0.09], # 分裂效果
    shadow=True # 阴影效果
)

plt.show()

2 - 甜甜圈 | 空心

要绘制甜甜圈,只需要加上一个 wedgeprops 属性即可。

甜甜圈设置的原理就是通过设置饼状图的饼的宽度,宽度初始值为1,此时是占满了整个圆的,如果小于1,那么就是圆环状了。

plt.figure(figsize=(4, 3))

# make data
x = np.random.randint(10,30,5)
citys = ['Beijing','Shanghai','Shenzhen','Nanjing','Guangzhou']

plt.pie(
    x=x,
    autopct='%.1f%%', # 显示百分比
    pctdistance=0.6, # 文字距离圆心的距离
    labels=citys, # 标签
    labeldistance=1.3, # 标签距离圆心的位置
    textprops={'fontsize':12,'color':'black'}, # 文字样式
    explode=[0,0,0.05,0,0.09], # 分裂效果
    shadow=True, # 阴影效果
    wedgeprops={'width': 0.5,'edgecolor':'w'} # 甜甜圈设置
)

plt.show()

3 - 甜甜圈 | 实心

实心甜甜圈的原理就是,外面的圆环使用的是空心甜甜圈,里面的圆是正常画的饼图,只不过,里面的饼图刚好填充了甜甜圈的内部空白区域,通过设置 radius 可以达到,下面请看代码示例。

plt.figure(figsize=(6, 4))

# make data
citys = ['Beijing','Shanghai','Shenzhen','Nanjing','Guangzhou']
x1 = np.random.randint(10,30,5)
x2 = np.random.randint(10,30,5)

# 第一个圆环
plt.pie(
    x=x1,
    autopct='%.1f%%', # 显示百分比
    pctdistance=0.6, # 文字距离圆心的距离
    labels=citys, # 标签
    labeldistance=1.3, # 标签距离圆心的位置
    wedgeprops={'width': 0.4,'edgecolor':'w'} # 甜甜圈设置
)

# 第二个圆环,用来填充空白处
plt.pie(
    x=x2,
    autopct='%.1f%%', # 显示百分比
    pctdistance=0.6, # 文字距离圆心的距离
    radius=0.6 # 设置圆的半径,从而使该圆刚好填充空白区域
)

plt.show()

七、面积图

面积图又称为区域图,和折线图类似,用于强调Y轴随X轴而变化的程度,可用于引起人们对总值趋势的注意。

fig = plt.figure(figsize=(4,3))

x = [1,2,3,4,5]
y = np.random.randint(10,100,5)

# label
plt.xlabel('Month')
plt.ylabel('Score')

# title
plt.title('Score vary from month')
plt.suptitle('Super Title',y=1)
# plot
plt.stackplot(x,y)

# text
for a,b in zip(x,y):
    plt.text(
        x=a,
        y=b+2,
        s=b,
        fontsize=10,
        alpha=0.7,
        ha='center',
        va='center'
    )

# instantly show
plt.show()

八、热力图

热力图是一种通过对色块着色来显示数据的统计图表。

适用场景:

(1)热力图的优势在于“空间利用率高”,可以容纳较为庞大的数据。热力图不仅有助于发现数据间的关系、找出极值,也常用于刻画数据的整体样貌,方便在数据集之间进行比较(例如将每个运动员的历年成绩都浓缩成一张热力图,再进行比较)。

(2)如果将某行或某列设置为时间变量,热力图也可用于展示数据随时间的变化。例如,用热力图来反映一个城市一年中的温度变化,气候的冷暖走向,一目了然。

# figure
fig = plt.figure(figsize=(4,3))

# make data
x = ["project-{}".format(i+1) for i in range(5)]
y = ['Beijing','Shanghai','Shenzhen','Nanjing','Guangzhou']
data = np.random.randint(1000,6000,(5,5))

# ticks
plt.xticks(ticks=range(len(x)),labels=x,rotation=45)
plt.yticks(ticks=range(len(citys)),labels=citys)

# add text
for i in range(len(x)):
    for j in range(len(y)):
        plt.text(
            x=i,
            y=j,
            s=data[j,i],
            ha='center',
            va='center',
            fontsize=10,
            color='g'
        )
# plot
plt.imshow(data,cmap='Blues')

# add side color bar
plt.colorbar()

九、极坐标图

极坐标系是一个二维坐标系统,该坐标系统中任意位置可由一个夹角和一段相对原点的距离来表示。极坐标图(Polar)用来将极坐标系的信息表示出来的图形格式。

N = 8

# create a arithmetic progression with eight number from 0 to 2*np.pi
x = np.linspace(0,2*np.pi,N,endpoint=False)
# the height of polar 
heiht = np.random.randint(3,15,size=N)

# width
width = 2*np.pi / N
# color
color = np.random.rand(8,3) # rand:Return a array from 0 to 1.

# plot
axes = plt.subplot(111,projection='polar')
axes.bar(
    x=x,
    height=heiht,
    width=width,
    bottom=0,
    color=color
)

十、雷达图

当我们需要综合评价多个变量或指标时,条形图或柱状图可能是我们的首选,涉及到多组间的比较时,可能就需要分组条形图或分组柱状图了。

有时候也不禁问自己,只有这一种选择吗?

今天,我们就说说另外一种数据展示的图表——雷达图。

在实际场景中,雷达图也用于描述一个人的能力。比如中国乒乓球员有一位被成为“六边形战士”的,这个六边形能力,就算用雷达图描述的。

雷达图其实就是放在极坐标系中的首尾相连的折线图。

plt.figure(figsize=(3,3))

x = np.linspace(0,2*np.pi,6,endpoint=False)
y = [80,60,90,70,70,100]

# 首尾相连
x = np.concatenate((x,[x[0]]))
y = np.concatenate((y,[y[0]]))

# 绘制极坐标系
axes = plt.subplot(111,polar=True)

# 绘制折线条
axes.plot(x,y,ls='-',lw=1,color='g')
# 填充
axes.fill(x,y,alpha=0.3)

# 显示文本
for a,b in zip(x,y):
    plt.text(
        x=a,
        y=b+2,
        s=b,
        fontsize=10,
        color='r',
        ha='center',
        va='center'
    )

十一、等高线图

等高线图,有时称为地形图,是在平面上用等高线表示的三维地貌。 该图显示鸟瞰图,允许人们直观地看到正在绘制的丘陵、山谷和斜坡。

在绘制等高线图之前,我们先来介绍一个 meshgrid(a,b) 方法,该方法将 a,b 变成相同形状(shape)的数组,并返回新的数组。

a = np.array([1,2,3])
b = np.array([4,5])

# meshgrid(a,b),将 a,b 变成相同形状的数组
A,B = np.meshgrid(a,b)
display(A,B)


下面我们来绘制等高线图:

fig = plt.figure(figsize=(4, 3))

# make data
x = np.linspace(-5,5,100)
y = np.linspace(-5,5,100)

# let x,y have same shape
X,Y = np.meshgrid(x,y)
Z = np.sqrt(X**2+Y**2)

# plot
cb = plt.contourf(X,Y,Z)
# color bar
plt.colorbar(cb)
plt.show()

十二、3D图

在前面我们提到使用 matplotlib 也可以绘制3D图,下面我们就来绘制一些常见的3D图象。

下面的绘制方法,如果是 matplotlib-3.1.1 版本,会出现一系列类似下面的警告。

虽然说没有什么影响,但是有些不美观,因此,绘制3D图时可以参考官网的绘图案例去绘图。

1 - 三维折线图

fig = plt.figure(figsize=(4, 3))

# data
x = np.linspace(0,100,400)

# image
y = np.sin(x)
z = np.cos(x)

# 3D line chart
axes = Axes3D(fig)
fig.add_axes(axes)
axes.plot(x,y,z)

plt.show()

2 - 三维散点图

fig = plt.figure(figsize=(4, 3))

axes = Axes3D(fig)
fig.add_axes(axes)

# make data
x = np.random.rand(50)
y = np.random.rand(50)
z = np.random.rand(50)

# plot scatter
axes.scatter(x,y,z,color='b',s=100)

3 - 三维柱状图

fig = plt.figure(figsize=(5, 4))

axes = Axes3D(fig)
fig.add_axes(axes)

x = np.arange(1, 5)

for i in x:
    axes.bar(
        np.arange(4),
        np.random.randint(10, 100, size=4),
        zs=i,
        zdir='x',
        width=0.6,
        alpha=0.7
    )
    
# label
axes.set_xlabel('X轴',fontsize=10,color='r')
axes.set_ylabel('Y轴',fontsize=10,color='g')
axes.set_zlabel('Z轴',fontsize=10,color='b')

图象处理

  • 读取图片

该方法返回一个 NumPy 数组。

n = plt.imread(r'F:\Pictures\图片素材\csdn封面\社区图片\听海.png')
  • 显示图片

该方法传递一个 numpy 数组作为参数。

plt.imshow(n)
  • 保存图片

该方法至少传递文件名和 numpy 数组作为参数。

plt.imsave('sea.jpg',n,dpi=200)

结语

以上就是本期要分享的全部内容了!综合来看,我们要善于查看方法帮助(将光表定位在方法的花括号中,然后按 Shift + Tab 即可。

我是向阳花,我在CSDN等你!🚀

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

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

相关文章

【BASH】回顾与知识点梳理(二十三)

【BASH】回顾与知识点梳理 二十三 二十三. Linux 账号管理(二)23.1 账号管理新增与移除使用者: useradd, 相关配置文件, passwd, usermod, userdelusermoduserdel 23.2 用户功能(普通用户可使用)idfingerchfnchsh 23.3…

工程监测振弦采集仪采集到的数据如何进行分析和处理

工程监测振弦采集仪采集到的数据如何进行分析和处理 振弦采集仪是一个用于测量和记录物体振动的设备。它通过测量物体表面的振动来提取振动信号数据,然后将其转换为数字信号,以便进行分析和处理。在实际应用中,振弦采集仪是广泛应用于机械、建…

Streamlit 讲解专栏(九):深入探索布局和容器

文章目录 1 前言2 st.sidebar - 在侧边栏增添交互元素2.1 将交互元素添加至侧边栏2.2 示例:在侧边栏添加选择框和单选按钮2.3 特殊元素的注意事项 3 st.columns - 并排布局多元素容器3.1 插入并排布局的容器3.2 嵌套限制 4 st.tabs - 以选项卡形式布局多元素容器4.1…

【量化课程】04_量化选股策略

文章目录 4.1 为什么要选股4.2 单/多因子选股模型4.2.1 效用模型与风险模型效用函数期望效用假说损失厌恶分散风险对投资者的假设 4.2.2 MPT 模型模型和假设有效前沿夏普比率市场组合和资本市场线 4.2.3 CAPM 模型模型假设CAPM 公式CAPM 的应用 4.2.4 套利定价理论(…

【量化课程】03_股票数据获取

文章目录 3.1 股票数据的基本分类3.1.1 技术面数据3.1.2 基本面数据 3.2 股票数据的常见指标介绍3.2.1 技术面数据常见指标3.2.2 基本面数据常见指标 3.3 Baostock的基础数据获取3.3.1 BaoStock 技术面数据简介一、历史A股K线数据二、指数数据三、上证50成分股 3.3.2 BaoStock …

Stable Diffusion基础:ControlNet之图片风格迁移

今天继续给大家分享AI绘画中 ControlNet 的强大功能,本次的主角是 Reference,它可以将参照图片的风格迁移到新生成的图片中,这句话理解起来很困难,我们将通过几个实例来加深体会,比如照片转二次元风格、名画改造、AI减…

记录一次前端表格选型过程

摘要:本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 客户需求: 最近,接到一个客户项目,前期沟通时&…

母婴即时零售行业数据可视化分析

对新晋父母来说,很多母婴用品如同一位贴心的助手,为他们的宝宝提供温暖和呵护。从婴儿床垫到可爱的拼图玩具,每一件用品都是为宝宝的成长和发展量身定制。对于繁忙的父母们而言,这些用品不仅帮助照顾孩子,更是为他们减…

使用达梦数据库遇到的异常问题

达梦数据库遇到的异常问题 dm.jdbc.driver.DMException: 数据转换丢失警告 我这里出现问题的SQL语句是&#xff1a; MERGE INTO GOODS.DDZUSER t1USING(<foreach collection"list" item"item" index"index" separator"UNION ALL"&…

golang中使用chan控制协程并发简单事例

func main() {processNum : 5ch : make(chan struct{}, processNum)for true {ch <- struct{}{}go func() {defer func() {<-ch}()fmt.Println("我是协程", time.Now().UnixNano())time.Sleep(time.Second * 5)}()} } 可以看到&#xff0c;这里每5s会执行一次带…

DC电源模块的高转换率

BOSHIDA DC电源模块的高转换率 DC电源模块是将交流电转换为直流电供应设备使用的装置&#xff0c;是现代工业制造和电子产品中不可或缺的组件之一。高转换率是DC电源模块最重要的性能之一&#xff0c;它直接影响着电源的效率、功耗和发热等方面&#xff0c;因此也深受设计师的关…

HTML常用表情Emoji‍♂️和Emoji参考手册

HTML表情可以用来在网页中插入各种表情符号图标&#xff0c;丰富了网页表现形式和视觉效果。下面是一些常用HTML表情代码大全&#x1f4dc; ⚽&#x1f430;&#x1f98b;&#x1f305;&#x1f4a5;&#x1f350;&#x1f35e;&#x1f647;&#x1f3cc; &#x1f436;&…

1. 基于UDP的TFTP文件传输

1&#xff09;tftp协议概述 简单文件传输协议&#xff0c;适用于在网络上进行文件传输的一套标准协议&#xff0c;使用UDP传输 特点&#xff1a; 是应用层协议 基于UDP协议实现 数据传输模式 octet&#xff1a;二进制模式&#xff08;常用&#xff09; mail&#xff1a;…

Python实现GA遗传算法优化XGBoost回归模型(XGBRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;最早是由美国的 John holland于20世…

串口通信收发项目级一

void 定时器中断函数入口(void) { if(判断是否为定时器中断) { static uint16_t num定义静态变量; static uint8_t index定义静态变量; unsigned char buff_busy定义局部变量; if(串口中断接收数据数量>静态变量) { 静态变量串口中断接收数据数量; } else if(静态变量串口中…

day41二维数组 *returnSize 和 *returnColumnSizes +合并两个二维数组

题目描述&#xff1a; 题目参数 /*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/ int** m…

七 动手学深度学习v2 ——数值稳定性+模型初始化和激活函数

1. 数值稳定性 2. 如何让训练更加稳定 目标&#xff1a;让梯度值在合理的范围内 方法&#xff1a; 将乘法变成加法 ResNetLSTM 归一化 梯度归一化梯度裁剪 合理的权重初始和激活函数

python 画三维散点图

import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from mpl_toolkits.mplot3d import Axes3D # 空间三维画图def get_color(label):label_color []for i in range(0,len(label)):if label[i] 0:label_color.append(red)elif l…

SpringBoot3安全管理

标签&#xff1a;Security.登录.权限&#xff1b; 一、简介 SpringSecurity组件可以为服务提供安全管理的能力&#xff0c;比如身份验证、授权和针对常见攻击的保护&#xff0c;是保护基于spring应用程序的事实上的标准&#xff1b; 在实际开发中&#xff0c;最常用的是登录验…

BC136 KiKi去重整数并排序

给定一个整数序列&#xff0c;KiKi想把其中的重复的整数去掉&#xff0c;并将去重后的序列从小到大排序输出。 输入描述 第一行&#xff0c;输入一个整数n&#xff0c;表示序列有n个整数。 第二行输入n个整数&#xff08;每个整数大于等于1&#xff0c;小于等于1000&#xf…