Python 数据可视化:工具与实践

news2024/9/20 18:27:05

文章目录

    • 数据可视化
      • 可视化库
      • 特点对比
      • 实例:绘制基本数据分布图
      • 评估维度
    • 交互式可视化与静态图表
      • 实例:创建交互式折线图
      • 评估维度
    • 实时数据可视化
      • 实例:展示实时股票数据
      • 评估维度
    • 图表设计原则
      • 实例:设计适合展示销售数据的条形图
      • 评估维度
    • 情境、目标与故事叙述
      • 情境与目标
      • 实例:展示销售绩效的仪表板
      • 评估维度
      • 故事叙述
      • 实例:展示气候变化的影响
      • 评估维度
    • 跨平台和移动设备的可视化
      • 实例:创建适配移动设备的仪表盘
      • 评估维度
    • 应用:教育与培训
      • 实例:使用可视化教学统计数据
      • 评估维度
      • 技巧:固定图节点位置(networkx)
      • 示例:固定图节点位置
    • 道德与伦理
      • 实例:展示健康数据的伦理问题
      • 评估维度
    • 结语

Python 在数据科学领域中扮演着重要角色,特别是在数据可视化方面。有效的数据可视化可以帮助我们更清晰地理解数据,发现模式,传达信息。本文将从数据可视化库的比较与选择、交互式可视化与静态图表的区别,以及图表设计原则与最佳实践等方面,深入探讨 Python 作图的工具与应用实践。
在这里插入图片描述

数据可视化

可视化库

在 Python 中,有多种数据可视化库可供选择,常见的包括:

  • Matplotlib:一个强大的绘图库,适用于低级控制和静态图表。
  • Seaborn:建立在 Matplotlib 之上,提供更加美观的默认设置和高级接口,适合进行统计图表绘制。
  • Plotly:用于创建互动图形的库,支持多种复杂的图表。
  • Bokeh:强调生成交互式可视化,适合用于大数据集。

特点对比

  • Matplotlib:通过图形窗口和绘图上下文管理工具实现图形界面的管理,支持多种文件格式输出。它使用对象绘图(类似于“绘画”)的方式,因此具有高度的灵活性。
  • Seaborn:通过 Matplotlib 将数据与图形的关系结合,更加侧重于数据统计,可自动计算统计量并整合到图形中。
  • Plotly:基于 D3.js,使用 JSON 格式描述数据。它的核心是构建一个 JavaScript 控制的交互图,并通过 Python 接口进行操作。
  • Bokeh:通过 Web 技术(HTML/JavaScript)实现图表,它的核心是添加交互工具,使用户可以对图像进行交互式操作,适合处理实时数据更新。

实例:绘制基本数据分布图

假设我们需要分析一个数据集的分布情况。

# pip install matplotlib seaborn pandas
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 创建示例数据集
data = {
    'age': [22, 25, 20, 23, 21, 33, 28, 38, 30, 29, 27, 26],
    'salary': [50000, 60000, 55000, 58000, 52000, 80000, 65000, 70000, 72000, 68000, 61000, 69000]
}

df = pd.DataFrame(data)

# 使用 Seaborn 绘制散点图
sns.scatterplot(data=df, x='age', y='salary')
plt.title('Age vs Salary Distribution')
plt.show()

在这里插入图片描述

思考:创建一个包含年龄和薪资的数据框。使用 Seaborn 绘制散点图,帮助我们直观地理解年龄与薪资之间的关系。

评估维度

在选择适合的可视化库时,可以考虑以下维度:

  • 易用性:API 的直观性、文档完整性。
  • 图形类型支持:支持的图形种类及复杂程度。
  • 性能:在大数据集上的表现如何。
  • 交互性和可定制性:支持的自定义程度与交互设计。
  • 社区支持:社区的活跃程度以及可用的第三方插件或扩展。

如何选择合适的可视化库?首先思考数据的类型,以及你希望通过可视化传达什么信息。例如,如果你需要进行复杂的交互式分析,Plotly 或 Bokeh 更合适;而如果是快速制作静态报告,Matplotlib 和 Seaborn 可能更高效。

交互式可视化与静态图表

交互式可视化允许用户与图表进行交互,从而提高数据探索的深度。例如,用户可以缩放、平移图表,或通过悬停获得工具提示。而静态图表则是在创建后不允许修改的图形,通常用于固定报告或文档中。

  • 交互式可视化:通过动态生成图形实现,通常依赖于 JavaScript 技术。用户通过操作界面与数据实体进行交互。
  • 静态图表:生成一次即可完成的图形,多用于文档或展示,通常效率较高,在数据较小且稳定时使用。

实例:创建交互式折线图

使用 Plotly 创建一个交互式图表来监测时间序列数据。

# pip install pandas numpy plotly
import pandas as pd
import numpy as np
import plotly.express as px

# 创建示例数据集
data = {
    'date': pd.date_range(start='2021-01-01', periods=100),
    'value': pd.Series(range(100)) + pd.Series(range(100)).apply(lambda x: np.random.randint(-10, 10))
}

df = pd.DataFrame(data)

# 使用 Plotly 绘制交互式折线图
fig = px.line(df, x='date', y='value', title='Interactive Line Chart')
fig.show()

在这里插入图片描述

创建一个时间序列数据。使用 Plotly 绘制交互式折线图,可以通过缩放、悬停查看数据点信息。

评估维度

评估交互式与静态可视化的适用性时,可以考虑:

  • 用户体验:交互性如何提升用户理解数据的能力。
  • 性能:在复杂数据集中,交互式可视化是否影响加载速度。
  • 稳定性:静态图表在长时间使用后是否依然有效,而交互式图表是否能有效实时更新。

思考:在什么情况下更倾向于使用交互式可视化?交互性能够有效提高数据探索的能力,尤其在展示复杂数据时。如何设计交互式图表以便易于理解和使用?关注用户交互的直观性和响应速度也是非常重要的。

实时数据可视化

实时数据可视化是指通过动态更新数据来展示当前的状态或趋势。这种可视化方式尤其在需要快速响应的场景(如监控系统、金融交易、大数据分析等)中极为重要。

  • 数据流处理:实时可视化需要处理数据流,通常使用合适的数据管道(如 Apache Kafka 或 Redis Streams)来接收和处理数据。
  • 更新机制:要有效地更新可视化的内容,通常使用 WebSockets 或类似的技术来实现客户端与服务器之间的实时通信。

实例:展示实时股票数据

使用 Dash 创建一个实时更新的股票价格图表。

# pip install dash, yfinance, plotly
import dash
from dash import dcc, html
import dash.dependencies as dd
import pandas as pd
import plotly.graph_objs as go
import yfinance as yf

app = dash.Dash(__name__)

# 股票数据更新函数
def get_stock_data(ticker):
    data = yf.download(ticker, period='1d', interval='1m')
    return data

app.layout = html.Div([
    dcc.Input(id='stock-input', value='AAPL', type='text'),
    dcc.Graph(id='live-graph'),
    dcc.Interval(id='graph-update', interval=60000)  # 每60秒更新
])

@app.callback(
    dd.Output('live-graph', 'figure'),
    dd.Input('graph-update', 'n_intervals'),
    dd.Input('stock-input', 'value')
)
def update_graph(n, stock):
    df = get_stock_data(stock)
    figure = go.Figure(data=[go.Scatter(x=df.index, y=df['Close'], mode='lines+markers')])
    figure.update_layout(title=f'Live Stock Prices for {stock}', xaxis_title='Time', yaxis_title='Price')
    return figure

if __name__ == '__main__':
    app.run_server(debug=True)

在这里插入图片描述

使用 Dash 构建一个网页应用来展示实时股票价格。每分钟更新一次图表,通过 yfinance 获取股票数据,动态显示当前价格。

评估维度

评估实时数据可视化的有效性可考虑以下指标:

  • 数据延迟:从数据产生到可视化更新的延迟时间。
  • 性能稳定性:在高负载情况下可视化的稳定性和响应速度。

思考:在什么场景下实时可视化是必需的?怎样处理大数据量的实时流?怎样确保数据准确性和稳定性?这些都值得深入探讨和思考。

图表设计原则

图表设计原则包括清晰性、有效性和吸引力。这些原则旨在确保图表不仅能传达信息,还能引发观众的兴趣。

  • 清晰性:确保数据传达的信息无歧义,避免复杂的格式和过多的文本。
  • 有效性:使用合适的图表类型(如条形图、折线图、散点图等)来展示不同类别的数据,关注信息的准确性和完整性。
  • 吸引力:如何运用颜色、布局和字体等视觉元素,使图表更加吸引人。

实例:设计适合展示销售数据的条形图

import pandas as pd
import matplotlib.pyplot as plt

# 创建示例销售数据
data = {
    'Product': ['A', 'B', 'C', 'D', 'E'],
    'Sales': [150, 80, 120, 200, 170]
}

df = pd.DataFrame(data)

# 绘制条形图
plt.bar(df['Product'], df['Sales'], color='skyblue')
plt.title('Sales by Product')
plt.xlabel('Product')
plt.ylabel('Sales')
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()

在这里插入图片描述

创建一个包含产品和销售数据的表。使用 Matplotlib 绘制简单的条形图,清晰展示每个产品的销售情况。

评估维度

衡量图表设计效果时,可以考虑:

  • 观众理解水平:设计是否能够让普通观众理解图表所表达的信息。
  • 信息传递速度:观众能在多快的时间内抓住数据的主要信息。

思考:如何提升图表的吸引力和专业性?探索多种颜色和样式,可以积极尝试数据标签和注释等增强信息传达的形式。同时,结合用户反馈,持续优化图表设计。

情境、目标与故事叙述

情境与目标

数据可视化的情境与目标是指在不同场景下,根据观众需求和数据类型选择合适的可视化方式。明确的目标能够指导有效的数据呈现,帮助观众迅速理解核心信息。

  • 观众识别:分析观众的背景、需求和知识水平,选择适合的图表类型与复杂程度。
  • 数据类型:不同的数据类型(定量、定性、时间序列等)适合不同的可视化方式。例如,时间序列数据可用折线图,分类数据可用条形图或饼图。

实例:展示销售绩效的仪表板

假设我们要为销售团队展示销售绩效,可以使用多个图表组合在一个仪表板中,以满足不同的信息需求。

import matplotlib.pyplot as plt
import pandas as pd

# 创建示例数据
data = {
    'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
    'Sales': [200, 300, 250, 400, 350, 500],
    'Profit': [50, 80, 60, 120, 100, 150]
}

df = pd.DataFrame(data)

fig, axs = plt.subplots(2, 1, figsize=(10, 10))

# 绘制销售图
axs[0].bar(df['Month'], df['Sales'], color='blue', alpha=0.7)
axs[0].set_title('Monthly Sales Performance')
axs[0].set_ylabel('Sales ($)')
axs[0].grid(axis='y')

# 绘制利润图
axs[1].plot(df['Month'], df['Profit'], marker='o', color='orange')
axs[1].set_title('Monthly Profit Performance')
axs[1].set_ylabel('Profit ($)')
axs[1].grid()

plt.tight_layout()
plt.show()

在这里插入图片描述

创建一个包含月份、销售和利润的 DataFrame。使用子图(subplot)组合条形图和折线图,直观展示销售和利润的关系。

评估维度

在选择合适的可视化时,可以考虑以下指标:

  • 数据匹配度:图形形式与数据类型的匹配程度。
  • 观众反馈:观众对信息传递的理解和反应。

思考:如何根据不同目标受众设计可视化?考虑不同受众的背景和需求,甚至可以进行用户调研,探索最能引起他们关注的可视化方式。如果是面向高管,可能需要更少的技术细节和更多的业务趋势;而技术团队则可能希望深入数据分析。

故事叙述

数据可视化不仅仅是展示信息,更是讲述一个故事。通过合理的设计和呈现,数据可以传达更深层次的信息和情感。

  • 叙事结构:有效的数据可视化往往具有明确的叙事结构,包括引入、发展和总结。
  • 视觉引导:通过色彩、位置和对比度等手段引导观众的注意力,帮助他们跟随故事发展。

实例:展示气候变化的影响

使用可视化讲述气候变化带来的影响,通过时间序列图展示温度的变化。

import pandas as pd
import plotly.express as px

# 创建气候变化数据集
data = {
    'Year': [2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007],
    'Temperature': [14.5, 14.7, 14.8, 15.1, 15.3, 15.5, 15.8, 16.0]
}

df = pd.DataFrame(data)

# 使用 Plotly 创建时间序列图
fig = px.line(df, x='Year', y='Temperature', title='Global Temperature Change Over Years', markers=True)
fig.update_traces(marker=dict(size=10))
fig.show()

在这里插入图片描述

创建一个包含年份和温度变化的数据集。使用 Plotly 绘制折线图,展示全球温度随年份变化的趋势,让观众直观感受到气候变化的影响。

评估维度

判断可视化叙事能力的指标包括:

  • 信息传达有效性:观众能否理解和记住信息。
  • 情感共鸣:是否能够引起观众的情感反应。

思考:如何通过数据可视化讲述更吸引人的故事?尝试结合更多的真实案例、情境故事和数据背景,帮助观众更好地理解数据背后的事情。同时,注意叙事风格,适度的幽默和情感共鸣能更深刻地影响观众。

跨平台和移动设备的可视化

跨平台可视化是指创建能够在多种设备(如桌面、手机、平板)上保持良好用户体验的可视化。移动设备的屏幕较小,因此需要特别设计以适应各种屏幕大小。

  • 响应式设计:使用 CSS 媒体查询和布局框架(如 Bootstrap)确保图表在不同分辨率上的兼容性。
  • 交互优化:在移动设备上优化触摸交互,确保用户体验流畅。

实例:创建适配移动设备的仪表盘

使用 Plotly Dash 创建一个简单的仪表盘,适配移动设备。

import dash
from dash import dcc, html
import plotly.express as px
import pandas as pd

# 示例数据集
df = pd.DataFrame({
    'Fruit': ['Apples', 'Oranges', 'Bananas', 'Grapes'],
    'Amount': [4, 1, 2, 3],
})

app = dash.Dash(__name__)

app.layout = html.Div([
    html.H1('Fruit Sales'),
    dcc.Graph(
        figure=px.pie(df, values='Amount', names='Fruit', title='Fruit Sales Distribution'),
        responsive=True
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)

在这里插入图片描述

使用 Dash 和 Plotly 创建一个简单的饼图,展示水果销售的分布。responsive=True 确保图表在移动设备上的可用性。

评估维度

在评估跨平台可视化时,可以考虑以下指标:

  • 可访问性:在多个设备上的可视化呈现质量。
  • 响应速度:用户与图表的交互响应时间。

思考:移动设备的可视化在商业应用中愈发重要,如何最大化用户体验?考虑在移动环境中简化信息展示,优先显示关键数据,并提供深度分析的功能。

应用:教育与培训

数据可视化在教育和培训中能够直观地传达复杂概念,帮助学生和受众更快理解和记忆。

  • 教学辅助:通过可视化工具,教师可以用更生动的方式解释概念,提升课堂的互动性。
  • 主动学习:学生可以通过动手实验和可视化工具自行探索数据,更深入地理解学习内容。

实例:使用可视化教学统计数据

利用 Matplotlib 和 Pandas 创建一个数据统计的可视化,帮助学生理解统计概念。

import pandas as pd
import matplotlib.pyplot as plt

# 创建学生成绩数据
data = {
    'Student': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Score': [90, 85, 70, 60, 95]
}

df = pd.DataFrame(data)

# 绘制柱状图展示成绩
plt.bar(df['Student'], df['Score'], color='cyan')
plt.title('Student Scores')
plt.ylabel('Scores')
plt.xticks(rotation=45)
plt.grid(axis='y')
plt.show()

在这里插入图片描述

创建一个包含学生名字和成绩的数据框。使用 Matplotlib 绘制柱状图,提高学生对成绩分布的直观理解。

评估维度

在教育应用中的可视化评估可考虑:

  • 学生理解度:通过问卷或考试结果评估学生对概念的理解程度。
  • 交互参与度:学生在学习过程中使用可视化的频率。

思考:如何在教育中设计可视化以促进学习?结合教育心理学,如何使可视化内容更有吸引力和教育性?同时,考虑到不同学习风格的学生,如何设计多样化的可视化来增强学习体验?

技巧:固定图节点位置(networkx)

使用 networkx 作图时,如何让其中的点始终固定在一个位置?

在使用 networkx 进行图绘制时,可以使用 pos 参数来设置节点的位置。通过定义一个固定的位置字典,可以让节点始终保持在指定的位置。此外,可以在 nx.draw() 中传递这个位置字典来实现。

示例:固定图节点位置

定义节点的位置,使用字典将每个节点的名称映射到其坐标。在绘图时使用这个位置字典

以下是一个示范代码,展示如何将节点固定在指定位置:

import matplotlib.pyplot as plt
import networkx as nx

# 创建图
G = nx.Graph()

# 添加边
edges = [
    ('A', 'B'),
    ('A', 'C'),
    ('B', 'D'),
    ('C', 'D'),
    ('D', 'E'),
]

G.add_edges_from(edges)

# 定义每个节点的位置
pos = {
    'A': (0, 1),
    'B': (-1, 0),
    'C': (1, 0),
    'D': (0, 0),
    'E': (0, -1)
}

# 绘制图形
nx.draw(G, pos, with_labels=True, node_color='lightblue', node_size=700, font_size=12, font_weight='bold', edge_color='gray')

# 设置图形标题
plt.title("固定节点位置的图")
plt.show()

可以根据实际需要自定义节点的位置和布局。如果图较复杂,可以使用其他布局算法生成位置字典,并在此基础上进行调整。
在这里插入图片描述

  • 创建图:通过 nx.Graph() 创建无向图对象。
  • 添加边:使用 add_edges_from() 方法添加边。
  • 定义位置:在 pos 字典中为每个节点指定坐标。例如,节点 A 的位置为 (0, 1),节点 B 的位置为 (-1, 0)
  • 绘图:使用 nx.draw() 并将 pos 字典作为参数,通过 with_labels=True 使节点显示标签。

运行以上代码将生成一个图,其中每个节点都固定在指定位置。

道德与伦理

在数据可视化过程中,涉及到数据的选择、呈现和解释,因而数据的道德与伦理显得尤为重要。有效的可视化需要避免误导与偏见。

  • 数据选择与透明度:选择何种数据进行可视化,以及如何清楚地展示数据来源。
  • 避免操纵:操作数据或呈现方式以引导观众得出特定结论是一种不道德的做法。

实例:展示健康数据的伦理问题

考虑展示健康数据的可视化,尤其是涉及敏感话题,如种族、性别等。

import pandas as pd
import matplotlib.pyplot as plt

# 创建健康数据示例
data = {
    'Group': ['A', 'B', 'C', 'D'],
    'HealthScore': [88, 70, 76, 90]
}

df = pd.DataFrame(data)

# 绘制条形图
plt.bar(df['Group'], df['HealthScore'], color=['blue', 'orange', 'green', 'red'])
plt.title('Health Score by Group')
plt.ylabel('Health Score')
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()

在这里插入图片描述

创建一个包含不同群体健康评分的数据集。通过条形图展示不同群体的健康评分。

评估维度

可视化的伦理性可以通过以下指标来衡量:

  • 准确性:信息传递的真实性和可靠性。
  • 偏见识别:是否能够识别数据中潜在的偏见与歧视。

思考:数据可视化者需要承担什么样的道德责任?在选择可视化内容时,如何确保不误导观众?在处理敏感数据时,保持透明度和中立性是至关重要的。学习识别和避免常见的数据陷阱,有助于提升数据呈现的可信度。

结语

Python 作图是数据分析与可视化的重要环节,通过选择合适的工具、理解交互性与静态图表的差异,以及遵循图表设计原则,可以极大地提升数据解读能力和信息传达的效果。

数据可视化在不同领域的应用正在不断扩展,是一个不断发展和演变的领域,从实时数据监控到教育培训,每个场景都影响着数据分析、商业决策和公众理解,有其特殊的需求与目标。综合实时数据可视化、跨平台适应性、以及教育应用等不同层面,能更全面地理解数据可视化的广泛应用及其潜在价值。随着技术的进步,数据可视化将继续在更广泛的领域提供帮助和支持。

通过深入分析可视化的情境与目标、叙事能力以及道德与伦理,能够更全面地理解数据可视化的意义与价值,实现更有效的数据呈现和应用。通过不断实践与总结,在一定程度上掌握数据可视化的精髓,为数据驱动的决策做出更大的贡献。


PS:感谢每一位志同道合者的阅读,欢迎关注、点赞、评论!


  • 上一篇:AI 内容创作:思考与实践
  • 专栏:「计算通践」

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

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

相关文章

论文辅助笔记:LP_BERT

1 train_task1.py 1.1 main部分 读取命令行参数,调用task1函数 1.2 task1 train 1.3 task1 valid 1.3 collate_fn 2 Dataset 2.1 train dataset 2.2 valid dataset 3 LPBERT 3.1 不同的embedding day-of-week embedding和time-of-day embedding X位置和Y位置的…

色彩与笔触的交响:广州米塔在线科教技术有限公司揭秘PS绘画秘籍!

在数字艺术的广阔天地里,PS无疑是一颗璀璨的明星,它不仅在图像处理领域独领风骚,更以其强大的功能成为了众多艺术家和设计师进行数字绘画的首选工具。广州米塔在线科教技术有限公司,作为致力于艺术教育与技术分享的平台,深知掌握P…

sealos快速搭建k8s集群

一,环境准备 1,三台(搭建一主两从集群)或五台(三主两从集群)虚拟机, 安装alimaLinux系统 ,相同的root密码,不要安装docker。 如果是alimaLinux-mini版本操作系统&#xf…

PMP–知识卡片--SCQA金字塔表达

SCQA模型通过四个关键元素:情景冲突疑问答案,建立了一个精确而有逻辑的表达框架。同时,它也能够帮助你构建合理的逻辑链条,让别人更容易理解和接受你的观点。 情景:通过描述背景和现状引入话题,这个元素帮助…

两个月冲刺软考——关系模式中的候选关键字与如何分解为无损连接并保持函数依赖的解法(例题讲解,看完必会)

1. 数据库中的简单属性、多值属性、复合属性、派生属性 简单属性:指不能够再分解成更小部分的属性,通常是数据表中的一个列。例如学生表中的“学号”、“姓名”等均为简单属性。 多值属性:指一个属性可以有多个值。例如一个学生可能会有多个…

掌握EF Core:全方位面试指南,助你从初级到高级轻松晋级

一、前言 这份指南旨在帮助你为主要考察 Entity Framework Core (EF Core) 的面试做好准备,内容涵盖基础、中级和高级三个不同经验级别。每个级别包括10个高频面试题,附有解题思路和详细的解答示例。 二、基础级别 重点在于 EF Core 的基本概念和使用…

nginx源码编译

华子目录 准备下载nginx源码包关闭firewalld和selinux安装依赖环境 安装解压关闭nginx的debug功能执行./configure进行环境检测添加nginx系统用户使用make编译使用make install安装 进入到prefix指定的目录中查看启动nginx服务关闭nginx添加nginx环境变量卸载nginx 准备 下载n…

猫头虎 分享:Python库 SciPy 的简介、安装、用法详解入门教程

🐯 猫头虎 分享:Python库 SciPy 的简介、安装、用法详解入门教程 今天猫头虎带您深入探索SciPy,一个在数据科学和人工智能领域必不可少的Python库! 📝 摘要 在数据科学和人工智能领域,SciPy 是一个关键的…

【电脑小白】告别蓝屏恐慌:一步步教你排查和解决蓝屏问题,从此告别蓝屏烦恼!

在日常学习和工作中,电脑已经成为我们日常生活和工作中不可或缺的一部分。然而,电脑的蓝屏问题却成为许多朋友,尤其是电脑小白们的噩梦。一旦遭遇蓝屏,大多数人一时都会感到手足无措。 因此,本文将向各位朋友介绍遇到蓝…

迁移学习之领域泛化

对目标领域一无所知,并不是要适应到某一个特定的领域上的问题通常称为领域泛化。领 域泛化可又分成两种情况。一种情况是训练数据非常丰富,包含了各种不同的领域,测试数据 只有一个领域。如图1(a)所示,比如…

2024年8月30日(docker部署project-exam-system系统 并用Dockerfile构建java镜像)

一、回顾 1.使用harbao仓库 1. Python -- version 2. yum -y update 3. yum -y install python2-pip 4. pip install -- upgrade pip 20.3 -i https://mirrors.aliyun.com/pypi/simple 5. pip install docker-compose -i https://mirrors.aliyun.com/pypi/simple 6. source do…

向量、数量积、向量积

目录 一、向量的定义二、向量是有序的数字列表三、向量的基本分类四、向量的运算律五、向量的基本运算1、向量加法2、向量乘法(数乘)3、向量减法4、点积(内积或数量积)5、叉积(外积或向量积)6、向量的模&am…

RTA-OS Port Guide学习(一)-基于S32K324 OS

文章目录 前言OS Port的安装Port CharacteristicsParameters of ImplementationConfiguration ParametersStack used for C-startup(SpPreStartOS)Stack used when idle (SpStartOS)Stack overheads for ISR activation (SpIDisp)Stack overheads for ECC tasks (SpECC)Stack o…

LLM的范式转移:RL带来新的 Scaling Law

从几周前 Sam Altman 在 X 上发布草莓照片开始,整个行业都在期待 OpenAI 发布新模型。根据 The information 的报道,Strawberry 就是之前的 Q-star,其合成数据的方法会大幅提升 LLM 的智能推理能力,尤其体现在数学解题、解字谜、代…

<Rust>egui学习之小部件(三):如何为窗口UI元件设置布局(间隔、水平、垂直排列)?

前言 本专栏是关于Rust的GUI库egui的部件讲解及应用实例分析,主要讲解egui的源代码、部件属性、如何应用。 环境配置 系统:windows 平台:visual studio code 语言:rust 库:egui、eframe 概述 本文是本专栏的第三篇博…

TWRP 使用帮助 第三方Recovery

简介 TWRP 是国外安卓爱好者开发的一款工具全称为:Team Win Recovery Project。是一个由Omnirom开源团队中的Dees Troy主导开发,旨在打造最完美第三方recovery的开源项目。目前主要由包括Dees Troy在内的4个人共同维护。 主要作用包括刷机、备份、救砖 …

C++判断语句(基础速通)ac-wing

倍数 #include <iostream> using namespace std; int a, b; int main() {cin >> a >> b;if (a % b 0 || b % a 0) cout << "Sao Multiplos";else cout << "Nao sao Multiplos";return 0; }零食 #include <iostream>…

通用后台管理系统实战演示(Vue3 + element-plus)汇总篇一

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

菜鸟笔记-001 如何用JavaScript脚本在文字中实现向左或向右插入空格

这是一个网友在线上问我的一个问题&#xff1a; 如何用JavaScript脚本在文字中实现向左或向右插入空格 下图是在文字左边插入了1/2个空格的效果&#xff1a; 那么如何用javascript 实现向左向右插入空格&#xff1f; 其实这个功能&#xff0c;我在实际工作确实很少碰到&#xf…

【王树森】RNN模型与NLP应用(5/9):多层RNN、双向RNN、预训练(个人向笔记)

Stacked RNN&#xff08;多层RNN&#xff09; 1. 原理 多个全连接层可以堆叠&#xff0c;多个卷积层也可以堆叠。同理&#xff1a;RNN也可以堆叠形成多层RNN。 如下图所示&#xff1a;对于每一个时刻的输出 h t h_t ht​&#xff0c;它既会作为下一个时刻的输入&#xff0c;…