Pandas和Seaborn数据可视化
Pandas数据可视化
学习目标
本章内容不需要理解和记忆,重在【查表】!
- 知道数据可视化的重要性和必要性
- 知道如何使用Matplotlib的常用图表API
- 能够找到Seaborn的绘图API
1 Pandas数据可视化
一图胜千言,人是一个视觉敏感的动物,大多数人对数字无法在较短的时间内找到规律和业务意义,可视化就势在必行。视觉化效应 (Visual effects) 是指人类认知过程中,只要将非视觉性信息转化成视觉信息,可以大大增强海马体的记忆与前额叶皮质的思维反应速度。
- Pandas的数据可视化依赖于matplotlib模块的pyplot类,在安装Pandas时会自动安装Matplotlib
- Matplotlib是一个专门的绘图可视化包,可以对图形做细节控制,绘制出出版质量级别的图形,通过Matplotlib,可以简单地绘制出常用的统计图形。
- 除了Matplotlib以外还有很多用于可视化的包,比如Seaborn
1.1 Pandas内置Matplotlib
- Pandas内置图表功能依赖其自带的Matplotlib包
- dataframe对象或seriers对象直接调用
plot()
函数即可绘图- Pandas绘图的API使用方法和Matplotlib包相同
import pandas as pd
# 加载 anscombe数据
anscombe = pd.read_csv('data/anscombe.csv')
df1 = anscombe[anscombe['dataset']=='I']
df2 = anscombe[anscombe['dataset']=='II']
df3 = anscombe[anscombe['dataset']=='III']
df4 = anscombe[anscombe['dataset']=='IV']df1.plot() # 默认折线图
df1['x'].plot.bar()# df.plot.line() # 折线图的全写方式
# df.plot.bar() # 柱状图
# df.plot.barh() # 横向柱状图 (条形图)
# df.plot.hist() # 直方图
# df.plot.box() # 箱形图
# df.plot.kde() # 核密度估计图
# df.plot.density() # 同 df.plot.kde()
# df.plot.area() # 面积图
# s.plot.pie() # 饼图
# df.plot.scatter() # 散点图
# df.plot.hexbin() # 六边形箱体图,或简称六边形图
plt.show()
1.2 解决中文显示以及关闭警告
- 运行下边的代码,中午字符无法正常显示,而且出现警告信息
import matplotlib.pyplot as plt
import numpy as npx = np.array(["Runoob-1", "Runoob-2", "Runoob-3", "C-RUNOOB"])
y = np.array([12, 22, 6, 18])plt.bar(x,y)
plt.title('柱状图')
plt.show()
- 设置中文字体
matplotlib.rcParams['font.family'] = 'SimHei'
-
改变字体即可正常显示中文
-
将
simhei.ttf
字体文件放到/root/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf
目录下 -
修改
/root/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data
目录下的matplotlibrc
文件vim matplotlibrc # 增加以下内容 font.family : sans-serif font.sans-serif : SimHei axes.unicode_minus : False
-
-
删除
/root/.cache
目录下的matplotlib
文件cd /root/.cache rm -rf matplotlib
2 Pandas图表绘制
准备工作
import pandas as pdanscombe = pd.read_csv('../data/e_anscombe.csv') # 资料中提供了这份数据
print(anscombe)df1 = anscombe[anscombe['dataset']=='I']
df2 = anscombe[anscombe['dataset']=='II']
df3 = anscombe[anscombe['dataset']=='III']
df4 = anscombe[anscombe['dataset']=='IV']
2.1 折线图line
df1.plot() # 默认折线图
#df1.plot(kind='line') # 结果与df1.plot()
#df1.plot.line() # 结果与df1.plot()
# x轴是索引值,y轴是各列的具体值
# 也可以通过参数指定xy轴对应的列名
df1.plot.line(x='x', y='y')
plt.show()
2.2 柱状图bar
df1.plot.bar() # 柱状图
df1.plot.bar(stacked=True) # 柱状堆积
# 也可以通过参数指定xy轴对应的列名
df1.plot.bar(x='x', y='y')
plt.show()
2.3 水平条形图barh
df1.plot.barh() # 水平条形图
df1.plot.barh(stacked=True) # 水平条形堆积图
# 也可以通过参数指定xy轴对应的列名
df1.plot.barh(x='x', y='y')
plt.show()
2.4 饼图pie
# 饼图,只能展示一维数据
# 参数y指定列名
# 参数autopct='%.2f%%'指定显示百分比 %.2f%%表示保留2位小数
# 参数radius=0.9 指定饼图直径的比例,最大为1
# 参数figsize=(16, 8) 设定图片大小
df1.plot.pie(y='x', autopct='%.2f%%', radius=0.9, figsize=(16, 8))
plt.show()
2.5 散点图scatter
# 指定xy轴,grid=True开启背景辅助线
df1.plot.scatter(x='x', y='y', grid=True)
plt.show()
2.6 气泡图-特殊的scatter
# 参数s表示每个点的大小,与普通散点图相比能够描述三维数据
df1.plot.scatter(x='x', y='y', grid=True, s=df1['x']*100)
plt.show()
2.7 箱线图boxplot
- 箱线图用于显示多种统计信息:最小值,1/4分位,中位数,3/4分位,最大值,以及离群值(如果有)
df1.boxplot()
# df1.plot.boxplot() # 报错
plt.show()
2.8 直方图hist
- 直方图描述的是数据在不同区间内的分布情况,描述的数据量一般比较大,图示如下:
# 描述数据出现的次数
df1['x'].plot.hist()
plt.show()
2.9 蜂巢图hexbin
- 蜂巢图又叫做六边形分箱图(Hexagonal Binning),也称六边形箱体图,或简称六边形图,是一种由六边形为主要元素的统计图表。它是一种比较特殊的图表,既是散点图的延伸,又兼具直方图和热力图的特征。
- 颜色深浅表示该值出现的频率
# gridsize=12设定蜂箱格子的大小,数字越小格子越大
df1.plot.hexbin(x='x', y='y', gridsize=12)
plt.show()
3 Seaborn图表绘制
Seaborn是基于matplotlib的图形可视化python包。Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。
Matplotlib的API是按照图形的种类进行设计的,比如直方图、散点图等等; 而Seaborn不同,它的绘图API的设计初衷是为了更好的展示数据之间的关系,我们查看Seaborn的官方文档就能很直观的发现这一点。
Seaborn的官方文档和版本号
- API文档 https://seaborn.pydata.org/api.html
- 历史版本API文档 https://seaborn.pydata.org/archive.html
- 本课程使用的Seaborn版本为 0.10.1
seaborn图的分类
- 关系图:relplot关系类图表的接口,其实是下面两种图的集成,通过指定kind参数可以画出下面的两种图
- 散点图 scatterplot() (kind=“scatter”)
- 线形图 lineplot() (kind=“line”)
- 分布图
- 单变量分布图
- 直方图,质量估计图 distplot()
- 核密度估计图 kdeplot()
- 双变量关系图
- 双变量关系图 jointplot()
- 变量关系组图 pairplot()
- 将数组中的数据点绘制为轴上的数据 rugplot()
- 类别图:catplot 分类图表的接口,其实是下面八种图表的集成,通过指定kind参数可以画出下面的八种图
- 分类散点图
- stripplot() (kind=“strip”)
- swarmplot() (kind=“swarm”)
- 分类分布图
- boxplot() (kind=“box”)
- violinplot() (kind=“violin”)
- boxenplot() (kind=“boxen”)
- 分类估计图
- pointplot() (kind=“point”)
- barplot() (kind=“bar”)
- countplot() (kind=“count”)
- 回归图
- 回归模型图 Implot()
- 线性回归图 regplot()
- 线性回归残差图 residplot()
- 矩阵图组合图
- 热力图 heatmap()
- 聚集图 clustermap()
如果说Matplotlib的API规定了各种图形,那么Seaborn的API设计理念是为了更好的展示数据之间的关系;接下来我们就讲解较为常用的Seaborn绘图API
# 导包
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns # Anaconda内置,无需额外安装
# 加载数据
tips_df = pd.read_csv('data/05_tips.csv')
print(tips_df)
3.1 scatterplot关系散点图
# 指定数据集,指定x轴为消费订单金额,y轴为消费金额,
# 散点图通用的可选参数 hue='sex'通过颜色指定分组
# 散点图通用的可选参数 style='smoker' 通过形状指定分组
# 散点图通用的可选参数 size='time' 通过大小指定分组
sns.scatterplot(data=tips_df, x='total_bill', y='tip', hue='sex', style='smoker', size='time'
)
plt.show()
3.2 relplot关系散点线形图
sns.relplot(data=tips_df, x='total_bill', y='tip') # 默认 kind='scatter'
sns.relplot(data=tips_df, x='total_bill', y='tip', kind='line')
plt.show()
3.3 stripplot分类散点图
f = plt.figure()
f.add_subplot(2,1,1)
# 按照x属性所对应的类别分别展示y属性的值,适用于分类数据
# 不同饭点的账单总金额的散点图
sns.stripplot(data=tips_df, x='time', y='total_bill')
f.add_subplot(2,1,2)
# hue通用参数按颜色划分
# jitter=True 当数据点重合较多时,尽量分散的展示数据点
# dodge=True 拆分分类
sns.stripplot(data=tips_df, x='time', y='total_bill', jitter=True, dodge=True, hue='day')
plt.show()
[TIPS解决多图同时展示问题]
# 下边的代码只能输出一张图表
sns.stripplot(data=tips_df, x='time', y='total_bill')
sns.stripplot(data=tips_df, x='time', y='total_bill', jitter=True, dodge=True, hue='day')
plt.show()
# 所以我们使用下面的方法进行多图的输出
# f = plt.figure() # 创建画布
# f.add_subplot(2,1,1) # 在画布上申请图表空间,参数2,1,1表示2行1列中的第1个
# 图1 # sns.stripplot(data=tips_df, x='time', y='total_bill')
# f.add_subplot(2,1,2) # 在画布上申请图表空间,参数2,1,2表示2行1列中的第2个
# 图2 # sns.stripplot(data=tips_df, x='time', y='total_bill', jitter=True, dodge=True, hue='day')
# plt.show()
3.4 violinplot分类小提琴图
- 在箱线图基础上额外描述了数值出现的频率
# 下图分别描述午餐账单、晚餐账单的最大值、最小值、三个四分位数,以及所有账单金额出现的次数(频率)
sns.violinplot(data=tips_df, x='time', y='total_bill')
plt.show()
3.5 barplot分类平均值分布图
# 下图中黑色的粗线条展示了数据的分布(误差线), 线条越短, 数据分布越均匀
# 下图中每个柱的顶点就是该分类y指定列的平均值
sns.barplot(data=tips_df, x='day', y='total_bill')
plt.show()
3.6 countplot分类计数图
# 按x指定的列值分组统计出现次数
sns.countplot(data=tips_df, x='day')
plt.show()
3.7 heatmap矩阵热力图
- 将二维的矩阵数据输出为热力图,颜色深浅就表示数值的大小
# 男女在午餐晚餐的平均消费
new_df = tips_df.pivot_table(index='sex', columns='time', values='total_bill', aggfunc='mean')
print(new_df)
# 输出为热力图:男性在晚餐花费最多
sns.heatmap(data=new_df)
plt.show()
3.8 pairplot成对关系图
- 能够将df中所有或指定的数值类型的列,成对的进行组合展示两者之间的关系
sns.pairplot(tips_df)
#sns.pairplot(df) # 全部数值列进行两两组合
#sns.pairplot(df, vars=['列名1', '列名2']) # 指定要组合展示的列名
plt.show()
- 按右上、左下、中间轴线(左上至右下)的方式分别设置图表类型
pair_grid = sns.PairGrid(tips_df)
# 中间轴线上的图设为kdeplot
pair_grid.map_diag(sns.kdeplot)
# 右上设为lineplot
pair_grid.map_upper(sns.lineplot)
# 左下设为scatterplot
pair_grid.map_lower(sns.scatterplot)
plt.show()
3.9 通用配置
- 将 Seaborn 提供的样式声明代码 sns.set() 放置在绘图前,就可以设置图像的样式
sns.set(context='paper', style='darkgrid', palette='deep', font='sans-serif', font_scale=1
)
# context: 参数控制着默认的画幅大小,分别有 {paper, notebook, talk, poster} 四个值。其中,poster > talk > notebook > paper。
# style:参数控制默认样式,分别有 {darkgrid, whitegrid, dark, white, ticks},你可以自行更改查看它们之间的不同。
# palette:参数为预设的调色板。分别有 {deep, muted, bright, pastel, dark, colorblind} 等,你可以自行更改查看它们之间的不同。
# font:用于设置字体
# font_scale:设置字体大小sns.scatterplot(data=tips_df, x='total_bill', y='tip', hue='sex', style='smoker', size='time')
plt.show()
总结
请对下面的内容 有印象、能找到、能理解、能看懂
-
Matplotlib:各种图形的API
- 折线图 df.plot.line()
- 柱状图 df.plot.bar()
- 水平条形图 df.plot.barh()
- 饼图 df.plot.pie()
- 散点图 df.plot.scatter()
- 气泡图 df.plot.scatter()
- 在散点图的基础上,除了xy参数以外再增加一个s参数,可以展示三维数据
- 面积图 df.plot.area()
- 箱线图 df.boxplot()
- 可以展示最大值、最小值、1/4分位数、中位数、3/4分位数
- 直方图 df.plot.hist()
- 描述一维数据,展示数据出现的次数
- 蜂巢图 df.plot.hexbin()
- 描述二维数据的同时,展示数据出现的次数
-
Seaborn:实现各种统计功能的图表API
- API文档 https://seaborn.pydata.org/api.html
- 历史版本API文档 https://seaborn.pydata.org/archive.html
- 关系图:relplot关系类图表的接口,其实是下面两种图的集成,通过指定kind参数可以画出下面的两种图
- 散点图 scatterplot() (kind=“scatter”)
- 线形图 lineplot() (kind=“line”)
- 分布图
- 单变量分布图
- 直方图,质量估计图 distplot()
- 核密度估计图 kdeplot()
- 双变量关系图
- 双变量关系图 jointplot()
- 变量关系组图 pairplot()
- 将数组中的数据点绘制为轴上的数据 rugplot()
- 单变量分布图
- 类别图:catplot 分类图表的接口,其实是下面八种图表的集成,通过指定kind参数可以画出下面的八种图
- 分类散点图
- stripplot() (kind=“strip”)
- swarmplot() (kind=“swarm”)
- 分类分布图
- boxplot() (kind=“box”)
- violinplot() (kind=“violin”)
- boxenplot() (kind=“boxen”)
- 分类估计图
- pointplot() (kind=“point”)
- barplot() (kind=“bar”)
- countplot() (kind=“count”)
- 分类散点图
- 回归图
- 回归模型图 Implot()
- 线性回归图 regplot()
- 线性回归残差图 residplot()
- 矩阵图组合图
- 热力图 heatmap()
- 聚集图 clustermap()
-
Pyecharts
- 官方文档 https://pyecharts.org/#/zh-cn/intro
- 官方案例 https://gallery.pyecharts.org/#/README
ot() (kind=“strip”)
- swarmplot() (kind=“swarm”)
- 分类分布图
- boxplot() (kind=“box”)
- violinplot() (kind=“violin”)
- boxenplot() (kind=“boxen”)
- 分类估计图
- pointplot() (kind=“point”)
- barplot() (kind=“bar”)
- countplot() (kind=“count”)
-
回归图
- 回归模型图 Implot()
- 线性回归图 regplot()
- 线性回归残差图 residplot()
-
矩阵图组合图
- 热力图 heatmap()
- 聚集图 clustermap()
-
Pyecharts
- 官方文档 https://pyecharts.org/#/zh-cn/intro
- 官方案例 https://gallery.pyecharts.org/#/README
相关文章:

Pandas和Seaborn数据可视化
Pandas数据可视化 学习目标 本章内容不需要理解和记忆,重在【查表】! 知道数据可视化的重要性和必要性知道如何使用Matplotlib的常用图表API能够找到Seaborn的绘图API 1 Pandas数据可视化 一图胜千言,人是一个视觉敏感的动物,大…...

爬虫(Python版本)
1.爬虫的法律问题 爬虫技术(Web Scraping)指通过程序自动访问网页并提取其中的数据。在使用爬虫的过程中,涉及到一些法律法规和合规性问题。 常见法律风险 ①未经授权的访问:很多网站对爬虫行为设置了限制。如果未获得授权就进行…...

【分布式训练 debug】VS Code Debug 技巧:launch.json实用参数
VS Code Debug技巧:launch.json实用参数 在使用Visual Studio Code (VS Code)进行调试时,launch.json文件是一个强大的工具,它允许你自定义调试会话。以下是一些实用的参数,可以帮助你更有效地调试Python代码。 1. 调试第三方库…...

pycharm连接linux服务器需要提前安装ssh服务
在 Debian 或 Ubuntu 系统上,使用 APT: bash复制代码 sudo apt-get install openssh-server 在基于 RPM 的系统如 CentOS 或 RHEL 上,使用 YUM 或 DNF: bash复制代码 sudo yum install openssh-server 或对于较新的 RHEL/Cent…...

通信工程学习:什么是LAN局域网、MAN城域网、WAN广域网
LAN局域网、MAN城域网、WAN广域网 LAN(Local Area Network,局域网)、MAN(Metropolitan Area Network,城域网)和WAN(Wide Area Network,广域网)是计算机网络中根据覆盖范围…...

LeetCode热题100速通
一丶哈希 1、两数之和(简单) 给定一个整数数组 n u m s nums nums 和一个整数目标值 t a r g e t target target,请你在该数组中找出 和为目标值 t a r g e t target target 的那 两个 整数,并返回它们的数组下标。 你可以假设…...

Python代码编写KDJ指标
KDJ指标由三部分组成:K值、D值、J值,主要用于分析股票市场的超买超卖状态及股价波动的趋势。博主记录学习编写KDJ指标线 import numpy as npdef calculate_kdj(close_prices, n9, m13, m23):"""计算KDJ指标:param close_prices: 收盘价序…...

传统少数民族物品检测系统源码分享
传统少数民族物品检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…...

深度学习中的迁移学习:预训练模型微调与实践
深度学习中的迁移学习:预训练模型微调与实践 目录 💡 迁移学习的核心概念🧠 预训练模型的使用:ResNet与VGG的微调🏥 迁移学习在医学图像分析中的应用🔄 实践中的迁移学习微调过程 1. 💡 迁移学…...

原生input实现时间选择器用法
2024.10.08今天我学习了如何用原生的input,实现时间选择器用法,效果如下: 代码如下: <div><input id"yf_start" type"text"> </div><script>$(#yf_start).datepicker({language: zh…...

对象的概念
对象是编程中一个重要的概念,尤其在面向对象编程(OOP)中更为核心。简单来说,对象是一种数据结构,它可以存储相关的数据和功能。以下是关于对象的详细描述: 1. 对象的定义 对象是属性(数据&…...

ARIMA|基于自回归差分移动平均模型时间序列预测
目录 一、基本内容介绍: 二、实际运行效果: 三、原理介绍: 四、完整程序下载: 一、基本内容介绍: 本代码基于Matlab平台,通过ARIMA模型对时间序列数据进行预测。程序以通过调试,解压后打开…...

sqli-labs靶场第三关less-3
sqli-labs靶场第三关less-3 1、确定注入点 http://192.168.128.3/sq/Less-3/?id1 http://192.168.128.3/sq/Less-3/?id2 有不同回显,判断可能存在注入, 2、判断注入类型 输入 http://192.168.128.3/sq/Less-3/?id1 and 11 http://192.168.128.3/sq/L…...

泡沫背后:人工智能的虚幻与现实
人工智能的盛世与泡沫 现今,人工智能热潮席卷科技行业,投资者、创业者和用户都被其光环吸引。然而,深入探讨这种现象,人工智能的泡沫正在形成,乃至具备崩溃的潜质。我们看到的,无非是一场由资本推动的狂欢…...

旅游管理智能化:SpringBoot框架的应用
第一章 绪论 1.1 研究现状 时代的发展,我们迎来了数字化信息时代,它正在渐渐的改变着人们的工作、学习以及娱乐方式。计算机网络,Internet扮演着越来越重要的角色,人们已经离不开网络了,大量的图片、文字、视频冲击着我…...

基于方块编码的图像压缩matlab仿真,带GUI界面
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 编码单元的表示 4.2编码单元的编码 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 下图是随着方块大小的变化,图像的压缩率以及对应的图像质量指标PSN…...

不同jdk版本间的替换
假设安装了 JDK 21 后,发现电脑有兼容性问题或其他原因需要切换回 JDK 8,替换过程很简单。你只需卸载 JDK 21 或者让系统使用 JDK 8。以下是详细步骤: 1. 卸载 JDK 21 https://www.oracle.com/java/technologies/downloads/#java21 如果你想…...

408算法题leetcode--第28天
84. 柱状图中最大的矩形 题目地址:84. 柱状图中最大的矩形 - 力扣(LeetCode) 题解思路:暴力:每一列记为矩形的高,找左边和右边比他小的位置,得到以该列为高对应的宽;这样最大的矩形…...

【无人机设计与控制】无人机三维路径规划,对比蚁群算法,ACO_Astar_RRT算法
摘要 本文探讨了三种不同的无人机三维路径规划算法,即蚁群算法(ACO)、A算法(Astar)以及快速随机树算法(RRT)。通过仿真实验对比了各算法在不同环境下的性能,包括路径长度、计算效率…...

毕设 大数据电影数据分析与可视化系统(源码+论文)
文章目录 0 前言1 项目运行效果2 设计概要3 最后 0 前言 🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师…...

10月7日刷题记录
C C...

苍穹外卖学习笔记(十五)
文章目录 一. 缓存菜品缓存菜品DishController.java清除缓存数据 缓存套餐Spring Cachemaven坐标常用注解 入门案例springcachedemo.sqlpom.xmlapplication.ymlCacheDemoApplication.javaWebMvcConfiguration.javaUserController.javaUser.javaUserMapper.java 套餐管理SkyAppl…...

知识图谱入门——5:Neo4j Desktop安装和使用手册(小白向:Cypher 查询语言:逐步教程!Neo4j 优缺点分析)
Neo4j简介 Neo4j 是一个基于图结构的 NoSQL 数据库,专门用于存储、查询和管理图形数据。它的核心思想是使用节点、关系和属性来描述数据。图数据库非常适合那些需要处理复杂关系的数据集,如社交网络、推荐系统、知识图谱等领域。 与传统的关系型数据库…...

35个数据分析模型
这些数据分析模型覆盖了战略规划、市场营销、运营管理、用户行为、财务分析等多个方面,是企业和组织在进行决策分析时常用的工具。分享给大家,如果想要PDF下载: https://edu.cda.cn/group/4/thread/178782 1、SWOT模型 SWOT模型是一种战略分…...

Java | Leetcode Java题解之第457题环形数组是否存在循环
题目: 题解: class Solution {public boolean circularArrayLoop(int[] nums) {int n nums.length;for (int i 0; i < n; i) {if (nums[i] 0) {continue;}int slow i, fast next(nums, i);// 判断非零且方向相同while (nums[slow] * nums[fast]…...

date:10.4(Content:Mr.Peng)( C language practice)
void reverse(char* p, int len) {char* left p;char* right p len - 2;while (left < right){char* temp left;*left *right;//当*left*right后,*temp已经被改为f了*right *temp;//你再*temp赋值给*right时,已经没用了left;right--;}}int main…...

【K8S系列】Kubernetes 集群中的网络常见面试题
在 Kubernetes 面试中,网络是一个重要的主题。理解 Kubernetes 网络模型、服务发现、网络策略等概念对候选人来说至关重要。以下是一些常见的 Kubernetes 网络面试题及其答案,帮助你准备面试。 1. Kubernetes 的网络模型是什么样的? 问题&am…...

Android 无Bug版 多语言设计方案!
出海业务为什么要做多语言? 1.市场扩大与本地化需求: 通过支持多种语言,出海项目可以触及更广泛的国际用户群体,进而扩大其市场份额。 本地化是吸引国际用户的重要策略之一,而语言本地化是其中的核心。使用用户的母语…...

Nginx02-安装
零、文章目录 Nginx02-安装 1、Nginx官网 Nginx官网地址:http://nginx.org/ 2、Nginx下载 (1)Nginx下载 下载页地址:http://nginx.org/en/download.html (2)更老版本下载 下载页地址:http…...

大模型基础架构
Transformer 设计者:Google 特点:最流行,几乎所有大模型都用它 代码:https://github.com/openai/finetune-transformer-lm/blob/master/train.py RWKV 设计者:PENG Bo 特点:可并行训练,推理性…...