当前位置: 首页 > news >正文

【数据可视化-17】基于pyecharts的印度犯罪数据可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

【数据可视化-17】基于pyecharts的印度犯罪数据可视化分析

  • 一、引言
  • 二、数据加载介绍
    • 2.1 导入必要的库
    • 2.2 读取数据
    • 2.3 数据探索
  • 三、数据预处理
  • 四、可视化分析
    • 4.1 城市犯罪计数统计
    • 4.2 不同犯罪领域的案件持续时间
    • 4.3 不同犯罪领域的警力部署
    • 4.4 犯罪类型的分布情况
    • 4.5 受害者性别分布
    • 4.6 各城市犯罪领域分布
    • 4.7 各种武器在犯罪类型里使用的频率
    • 4.8 受害者各年龄数量分布
    • 4.9 不同年龄区间的受害者数量
  • 总结

一、引言

  在当今社会,犯罪数据的分析对于理解犯罪模式、优化警力部署和提升公共安全具有重要意义。本文将利用 Python 的 pyecharts 库对 2020 年至 2024 年印度多个城市的犯罪数据进行可视化分析,涵盖多个关键维度。

二、数据加载介绍

2.1 导入必要的库

  首先,我们需要导入必要的Python库,包括pandas和pyecharts。

import pandas as pd
from datetime import datetime
from pyecharts.charts import Bar, Line, Pie, Scatter, Map, Grid, Tab
from pyecharts import options as opts
from pyecharts.globals import ThemeType

2.2 读取数据

  假设我们的数据集保存在一个CSV文件中,名为india_crime.csv。

data = pd.read_csv('india_crime_data.csv')

2.3 数据探索

  数据维度情况:

  数据的部分展示:

  查看数据简要概述信息:

  • Report Number - 报告编号
  • Date Reported - 报告日期
  • Date of Occurrence - 发生日期
  • Time of Occurrence - 发生时间
  • City - 城市
  • Crime Code - 犯罪代码
  • Crime Description - 犯罪描述
  • Victim Age - 受害者年龄
  • Victim Gender - 受害者性别
  • Weapon Used - 使用武器
  • Crime Domain - 犯罪领域
  • Police Deployed - 警力部署
  • Case Closed - 案件结案
  • Date Case Closed - 结案日期

  数据种缺失值情况:

三、数据预处理

  在进行可视化之前,我们需要对数据进行一些预处理,包括数据清洗、字段转换等。

# 转换日期字段
df['Date Reported'] = pd.to_datetime(df['Date Reported'])
df['Date of Occurrence'] = pd.to_datetime(df['Date of Occurrence'])
df['Date Case Closed'] = pd.to_datetime(df['Date Case Closed'], errors='coerce')
df['Time of Occurrence'] = pd.to_datetime(df['Time of Occurrence'], dayfirst=True)

  缺失值处理,使用’2020-01-01’来填充’Date Case Closed’字段种的缺失值。

df['Date Case Closed'] = df['Date Case Closed'].fillna(pd.to_datetime('2020-01-01'))

四、可视化分析

4.1 城市犯罪计数统计

  统计每个城市的犯罪数量,了解犯罪高发地区。

# 城市犯罪计数统计
city_crime_count = df['City'].value_counts().reset_index()
city_crime_count.columns = ['City', 'Crime Count']
city_crime_count = city_crime_count.sort_values(by='Crime Count')bar = (Bar(init_opts=opts.InitOpts(theme='dark',width='1000px', height='600px')).add_xaxis(city_crime_count['City'].tolist()).add_yaxis("", city_crime_count['Crime Count'].tolist()).set_series_opts(label_opts=opts.LabelOpts(is_show=True),     #True,显示柱状图上的数字).set_global_opts(title_opts=opts.TitleOpts(title="城市犯罪计数统计",subtitle="""--公众号:NLP随手记, CSDN:云天徽上--""",pos_left="center"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=30)),  #legend_opts=opts.LegendOpts(is_show=True),visualmap_opts=opts.VisualMapOpts(is_show=False,pos_top='60%',pos_left='40%',range_color=["green", "yellow", "red", "pink", "orange", "purple"])).reversal_axis())
bar.render("city_crime_count.html")
bar.render_notebook()

4.2 不同犯罪领域的案件持续时间

  计算不同犯罪领域的案件平均持续时间。

# 不同犯罪领域的案件持续时间
df['Case Duration'] = (df['Date Case Closed'] - df['Date of Occurrence']).dt.days
df['Case Duration'] = df['Case Duration'].fillna(df['Case Duration'].median())crime_domain_duration = df.groupby('Crime Domain')['Case Duration'].mean().reset_index()
crime_domain_duration.columns = ['Crime Domain', 'Average Duration']c = (Bar(init_opts=opts.InitOpts(theme='dark',width='1000px', height='600px')).add_xaxis(crime_domain_duration['Crime Domain'].tolist()).add_yaxis("", crime_domain_duration['Average Duration'].round(2).tolist()).set_series_opts(label_opts=opts.LabelOpts(is_show=True),     #True,显示柱状图上的数字).set_global_opts(title_opts=opts.TitleOpts(title="不同犯罪领域的案件持续时间",subtitle="""--公众号:NLP随手记, CSDN:云天徽上--""",pos_left="center"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=30)),  #legend_opts=opts.LegendOpts(is_show=True),visualmap_opts=opts.VisualMapOpts(is_show=False,pos_top='60%',pos_left='40%',range_color=["pink"])))
c.render("crime_domain_duration.html")
c.render_notebook()

4.3 不同犯罪领域的警力部署

  分析不同犯罪领域所需的警力部署情况。

categories = df['Crime Domain'].unique().tolist()box_data = []
for category in categories:group = df[df['Crime Domain'] == category]['Police Deployed']box_data.append(group.tolist())  # 注意:这不是标准的箱线图数据格式!c = (Boxplot(init_opts=opts.InitOpts(theme='dark',width='1000px', height='600px')).add_xaxis(categories).add_yaxis("", Boxplot.prepare_data(box_data)).set_series_opts(label_opts=opts.LabelOpts(is_show=True),     #True,显示柱状图上的数字).set_global_opts(title_opts=opts.TitleOpts(title="不同犯罪领域的警力部署",subtitle="""--公众号:NLP随手记, CSDN:云天徽上--""",pos_left="center"),xaxis_opts=opts.AxisOpts(type_="category", name="区域", axislabel_opts=opts.LabelOpts(rotate=-15)),yaxis_opts=opts.AxisOpts(type_="value", name="警力部署"),datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],visualmap_opts=opts.VisualMapOpts(is_show=False,pos_top='60%',pos_left='40%',range_color=["yellow"]))
)c.render("crime_domain_police.html")
c.render_notebook()

4.4 犯罪类型的分布情况

  分析不同犯罪类型的分布情况。

# 颜色分布
color_counts = df['Crime Description'].value_counts()
# 生成饼图数据
color_data = [(color, count) for color, count in color_counts.items()]# 创建饼图
pie_chart = (Pie(init_opts=opts.InitOpts(theme='dark',width='1200px', height='600px')).add("", color_data)# .set_colors(colors)  # 使用颜色映射列表.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")).set_global_opts(title_opts=opts.TitleOpts(title='犯罪类型的分布情况',subtitle="""--公众号:NLP随手记, CSDN:云天徽上--""",pos_top='0%',pos_left="center",title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=15)),# visualmap_opts=opts.VisualMapOpts(#     is_show=False,#     max_=600,#     pos_top='70%',#     pos_left='20%',#     range_color=["green", "yellow", "red", "pink", "orange"]# ),legend_opts=opts.LegendOpts(is_show=True, pos_right="0%", pos_top="5%",orient="vertical"),)
)
pie_chart.render("pie_set_color.html")
# 渲染图形
pie_chart.render_notebook()

4.5 受害者性别分布

  分析受害者的性别分布情况。

# 受害者性别分布
gender_distribution = df['Victim Gender'].value_counts()
gender_distribution  = [(color, count) for color, count in gender_distribution.items()]# 创建饼图
pie_chart = (Pie(init_opts=opts.InitOpts(theme='dark',width='1000px', height='600px')).add("", gender_distribution)# .set_colors(colors)  # 使用颜色映射列表.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")).set_global_opts(title_opts=opts.TitleOpts(title='受害者性别分布',subtitle="""--公众号:NLP随手记, CSDN:云天徽上--""",pos_top='0%',pos_left="center",title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=15)),legend_opts=opts.LegendOpts(is_show=True, pos_right="10%", pos_top="40%",orient="vertical"),)
)
pie_chart.render("gender_distribution.html")
# 渲染图形
pie_chart.render_notebook()

4.6 各城市犯罪领域分布

  分析各城市的犯罪领域分布情况。

from pyecharts.charts import HeatMapcity_domain_distribution = df.groupby(['City', 'Crime Domain']).size().unstack().fillna(0).reset_index()
city_domain_distribution = city_domain_distribution.melt(id_vars='City', var_name='Crime Domain', value_name='Count')FA = city_domain_distribution[city_domain_distribution['Crime Domain'] == 'Fire Accident'][['City','Count']]
OC = city_domain_distribution[city_domain_distribution['Crime Domain'] == 'Other Crime'][['City','Count']]
TF = city_domain_distribution[city_domain_distribution['Crime Domain'] == 'Traffic Fatality'][['City','Count']]
VC = city_domain_distribution[city_domain_distribution['Crime Domain'] == 'Violent Crime'][['City','Count']]data = FA.merge(OC,how='left',on='City',suffixes=('_df1', '_df2'))
data = data.merge(TF,how='left',on='City',suffixes=('', '_df3'))
data = data.merge(VC,how='left',on='City',suffixes=('', '_df4'))
data.columns = ['City','Fire Accident','Other Crime','Traffic Fatality','Violent Crime']# 创建堆叠柱状图
bar = (Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))  # 使用明亮的主题.add_xaxis(data['City'].tolist()).add_yaxis('Fire Accident', data['Fire Accident'].tolist(), stack='stack1', color='blue', label_opts=opts.LabelOpts(is_show=False)).add_yaxis('Other Crime', data['Other Crime'].tolist(), stack='stack1', color='green', label_opts=opts.LabelOpts(is_show=False)).add_yaxis('Traffic Fatality', data['Traffic Fatality'].tolist(), stack='stack1', color='orange', label_opts=opts.LabelOpts(is_show=False)).add_yaxis('Violent Crime', data['Violent Crime'].tolist(), stack='stack1', color='red', label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title='各城市犯罪领域分布',subtitle="""--公众号:NLP随手记  CSDN:云天徽上--""",pos_left="center"),xaxis_opts=opts.AxisOpts(name='城市', axislabel_opts=opts.LabelOpts(rotate=45)),yaxis_opts=opts.AxisOpts(name='犯罪数'),datazoom_opts=opts.DataZoomOpts(),  # 添加滑动条功能legend_opts=opts.LegendOpts(is_show=True, pos_right="-5%", pos_top="40%",orient="vertical"),# toolbox_opts=opts.ToolboxOpts(is_show=True)  # 启用工具箱)
)bar.render("city_domain_distribution.html")
bar.render_notebook()

4.7 各种武器在犯罪类型里使用的频率

  分析不同犯罪类型中各种武器的使用频率。

# 各种武器在犯罪类型里使用的频率
weapon_crime_distribution = df.groupby(['Crime Description', 'Weapon Used']).size().unstack().fillna(0).reset_index()
weapon_crime_distribution = weapon_crime_distribution.melt(id_vars='Crime Description', var_name='Weapon Used', value_name='Count')Blunt  = weapon_crime_distribution[weapon_crime_distribution['Weapon Used']=='Blunt Object'].set_index('Crime Description')['Count'].to_dict()
Explosives = weapon_crime_distribution[weapon_crime_distribution['Weapon Used']=='Explosives'].set_index('Crime Description')['Count'].to_dict()
Firearm  = weapon_crime_distribution[weapon_crime_distribution['Weapon Used']=='Firearm'].set_index('Crime Description')['Count'].to_dict()
Knife  = weapon_crime_distribution[weapon_crime_distribution['Weapon Used']=='Knife'].set_index('Crime Description')['Count'].to_dict()
Poison  = weapon_crime_distribution[weapon_crime_distribution['Weapon Used']=='Poison'].set_index('Crime Description')['Count'].to_dict()
None1  = weapon_crime_distribution[weapon_crime_distribution['Weapon Used']=='None'].set_index('Crime Description')['Count'].to_dict()
Other  = weapon_crime_distribution[weapon_crime_distribution['Weapon Used']=='Other'].set_index('Crime Description')['Count'].to_dict()Blunt_list = [[key, value] for key, value in Blunt.items()]
Explosives_list = [[key, value] for key, value in Explosives.items()]
Firearm_list = [[key, value] for key, value in Firearm.items()]
Knife_list = [[key, value] for key, value in Knife.items()]
Poison_list = [[key, value] for key, value in Poison.items()]
None1_list = [[key, value] for key, value in None1.items()]
Other_list = [[key, value] for key, value in Other.items()]c = (Pie(init_opts=opts.InitOpts(theme='dark',width='1400px', height='700px')).add("",Blunt_list,   # 两个值radius=["15%", "20%"],  # 大小center=["10%", "20%"],  # 位置rosetype="radius",   label_opts=opts.LabelOpts(is_show=False),  # 不在图形上显示数据).add("",Explosives_list,   # 两个值radius=["15%", "20%"],  # 大小center=["40%", "20%"],  # 位置rosetype="radius",   label_opts=opts.LabelOpts(is_show=False),  # 不在图形上显示数据).add("",Firearm_list,   # 两个值radius=["15%", "20%"],  # 大小center=["70%", "20%"],  # 位置rosetype="radius",   label_opts=opts.LabelOpts(is_show=False),  # 不在图形上显示数据).add("",Knife_list,   # 两个值radius=["15%", "20%"],  # 大小center=["10%", "50%"],  # 位置rosetype="radius",   label_opts=opts.LabelOpts(is_show=False),  # 不在图形上显示数据).add("",Poison_list,   # 两个值radius=["15%", "20%"],  # 大小center=["40%", "50%"],  # 位置rosetype="radius",   label_opts=opts.LabelOpts(is_show=False),  # 不在图形上显示数据).add("",None1_list,   # 两个值radius=["15%", "20%"],  # 大小center=["70%", "50%"],  # 位置rosetype="radius",   label_opts=opts.LabelOpts(is_show=False),  # 不在图形上显示数据).add("",Other_list,   # 两个值radius=["15%", "20%"],  # 大小center=["40%", "80%"],  # 位置rosetype="radius",   label_opts=opts.LabelOpts(is_show=False),  # 不在图形上显示数据).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")).set_global_opts(title_opts=opts.TitleOpts(title='各种武器在犯罪类型里使用的频率',subtitle="""--公众号:NLP随手记, CSDN:云天徽上--""",pos_top='0%',pos_left="center",title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=15)),legend_opts=opts.LegendOpts(is_show=True, pos_right="0%", pos_top="20%",orient="vertical"),)
)c.render("weapon_domain_distribution.html")
c.render_notebook()

4.8 受害者各年龄数量分布

  分析受害者年龄的分布情况。

age_distribution = df['Victim Age'].value_counts().reset_index()
age_distribution.columns = ['Age', 'Count']
age_distribution = age_distribution.sort_values(by='Age')# 创建散点图
scatter = (Scatter(init_opts=opts.InitOpts(theme='dark',width='1000px', height='600px')).add_xaxis(age_distribution['Age'].tolist()).add_yaxis("", age_distribution['Count'].tolist(), symbol_size=10,label_opts=opts.LabelOpts(is_show=False),itemstyle_opts=opts.ItemStyleOpts(color="skyblue", opacity=0.6))  # 设置散点大小.set_global_opts(title_opts=opts.TitleOpts(title='受害者性别分布',subtitle="""--公众号:NLP随手记, CSDN:云天徽上--""",pos_top='0%',pos_left="center",title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=15)),xaxis_opts=opts.AxisOpts(type_="category", name="受害者年龄",boundary_gap=False,max_=82),yaxis_opts=opts.AxisOpts(type_="value", name="数量",max_=max(age_distribution['Count'].tolist())+30, min_=min(age_distribution['Count'].tolist())-30),visualmap_opts=opts.VisualMapOpts(type_="size",is_show=False,pos_top='60%',pos_left='40%',range_color=["purple"],max_=max(age_distribution['Count'].tolist()),min_=min(age_distribution['Count'].tolist())),# visualmap_opts=opts.VisualMapOpts(type_="size"),  # 根据数量设置散点大小tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}"),  # 鼠标悬停提示)
)scatter.render("age_distribution.html")
scatter.render_notebook()

4.9 不同年龄区间的受害者数量

  分析不同年龄区间的受害者数量分布情况。

bins = [0, 17, 24, 34, 44, 54, 64, 74, 84, 94, 1000]
labels = ['0-17', '18-24', '25-34', '35-44', '45-54', '55-64', '65-74', '75-84', '85-94', '95+']
df['Age Group'] = pd.cut(df['Victim Age'], bins=bins, labels=labels, right=True)
# 将 Age Group 转换为有序类别
df['Age Group'] = pd.Categorical(df['Age Group'], categories=labels, ordered=True)
# 计算每个年龄区间的数量
vic_age = df['Age Group'].value_counts()gender_distribution  = [(color, count) for color, count in vic_age.items()]# 创建饼图
pie_chart = (Pie(init_opts=opts.InitOpts(theme='dark',width='1000px', height='600px')).add("", gender_distribution)# .set_colors(colors)  # 使用颜色映射列表.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")).set_global_opts(title_opts=opts.TitleOpts(title='不同年龄区间的受害者数量分布',subtitle="""--公众号:NLP随手记, CSDN:云天徽上--""",pos_top='0%',pos_left="center",title_textstyle_opts=opts.TextStyleOpts(color='#228be6',font_size=15)),legend_opts=opts.LegendOpts(is_show=True, pos_right="10%", pos_top="40%",orient="vertical"),)
)
pie_chart.render("age_group_distribution.html")
# 渲染图形
pie_chart.render_notebook()

总结

  以上代码实现了对印度犯罪数据的10个关键维度的可视化分析。通过 pyecharts,我们能够直观地展示城市犯罪数量、犯罪领域、警力部署、受害者特征等多方面的信息。这些可视化图表可以帮助研究人员、政策制定者和执法机构更好地理解犯罪模式,从而制定更有效的公共安全策略。

相关文章:

【数据可视化-17】基于pyecharts的印度犯罪数据可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...

HTTP请求报文头和相应报文头

一、HTTP请求报文头 HTTP请求报文由请求行、请求头和请求体组成。请求头包含客户端向服务器发送的附加信息。 1.1 请求行 格式: 方法 请求URI HTTP/版本示例: GET /index.html HTTP/1.1   方法: 请求类型,如GET、POST、PUT、DELETE等。   请求URI: 请求的资源…...

19.4.9 数据库方式操作Excel

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 本节所说的操作Excel操作是讲如何把Excel作为数据库来操作。 通过COM来操作Excel操作,请参看第21.2节 在第19.3.4节【…...

BFS 走迷宫

#include<bits/stdc.h> using namespace std; int a[100][100],v[100][100];//访问数组 n,m<100 struct point {int x;int y;int step; }; queue<point> r;//申请队列 int dx[4]{0,1,0,-1};//四个方向 右下左上 int dy[4]{1,0,-1,0}; int main() { /* 5 4 1 …...

【Linux系统】—— 简易进度条的实现

【Linux系统】—— 简易进度条的实现 1 回车和换行2 缓冲区3 进度条的准备代码4 第一版进度条5 第二版进度条 1 回车和换行 先问大家一个问题&#xff1a;回车换行是什么&#xff0c;或者说回车和换行是同一个概念吗&#xff1f;   可能大家对回车换行有一定的误解&#xff0…...

Qt 中使用 SQLite 数据库的完整指南

SQLite 是一款轻量级、嵌入式的关系型数据库&#xff0c;无需独立的服务器进程&#xff0c;数据以文件形式存储&#xff0c;非常适合桌面和移动端应用的本地数据管理。Qt 通过 Qt SQL 模块提供了对 SQLite 的原生支持&#xff0c;开发者可以轻松实现数据库的增删改查、事务处理…...

数智化时代的工单管理:从流程驱动到数据驱动-亿发

在数智化时代&#xff0c;工单管理系统已从简单的任务分发工具演变为企业运营的智能中枢。传统工单系统关注流程的线性推进&#xff0c;而现代工单管理系统则强调数据的全生命周期管理&#xff0c;通过智能算法实现工单的自动分配、优先级判定和效能优化。这种转变不仅提升了运…...

Large Language Model Distilling Medication Recommendation Model

摘要&#xff1a;药物推荐是智能医疗系统的一个重要方面&#xff0c;因为它涉及根据患者的特定健康需求开具最合适的药物。不幸的是&#xff0c;目前使用的许多复杂模型往往忽视医疗数据的细微语义&#xff0c;而仅仅严重依赖于标识信息。此外&#xff0c;这些模型在处理首次就…...

floodfill算法系列一>被围绕的区域

目录 整体思想&#xff1a;代码设计&#xff1a;代码呈现&#xff1a; 整体思想&#xff1a; 代码设计&#xff1a; 代码呈现&#xff1a; class Solution {int m,n;int[] dx {0,0,-1,1};int[] dy {-1,1,0,0};public void solve(char[][] board) {m board.length;n board[…...

Redis 01 02章——入门概述与安装配置

一、入门概述 &#xff08;1&#xff09;是什么 Redis&#xff1a;REmote Dictionary Server&#xff08;远程字典服务器&#xff09;官网解释&#xff1a;Remote Dictionary Server(远程字典服务)是完全开源的&#xff0c;使用ANSIC语言编写遵守BSD协议&#xff0c;是一个高…...

windows基于cpu安装pytorch运行faster-whisper-large-v3实现语音转文字

1.创建虚拟环境 conda create -n faster-whisper python3.10 conda activate faster-whisper 2.安装cpu版本的pytorch pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple 3.验证pytorch安装结果 (faster-whisper) H:\big-model\faste…...

AI大模型(如GPT、BERT等)可以通过自然语言处理(NLP)和机器学习技术,显著提升测试效率

在软件测试中,AI大模型(如GPT、BERT等)可以通过自然语言处理(NLP)和机器学习技术,显著提升测试效率。以下是几个具体的应用场景及对应的代码实现示例: 1. 自动生成测试用例 AI大模型可以根据需求文档或用户故事自动生成测试用例。 代码示例(使用 OpenAI GPT API): …...

【Prometheus】prometheus黑盒监控balckbox全面解析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...

CSS实现单行、多行文本溢出显示省略号(…)

在网页设计中&#xff0c;我们常常遇到这样的情况&#xff1a;文本内容太长&#xff0c;无法完全显示在一个固定的区域内。为了让界面看起来更整洁&#xff0c;我们可以使用省略号&#xff08;…&#xff09;来表示内容溢出。这不仅能提升用户体验&#xff0c;还能避免内容溢出…...

服务器中部署大模型DeepSeek-R1 | 本地部署DeepSeek-R1大模型 | deepseek-r1部署详细教程

0. 部署前的准备 首先我们需要足够算力的机器&#xff0c;这里我在vultr中租了有一张A16显卡一共16GB显存的服务器作为演示。部署的模型参数为14b的。如果需要部署满血版本671b的&#xff0c;需要更大的算力支持&#xff0c;这里由于是个人资金有限&#xff0c;就演示14b的部署…...

元学习之孪生网络Siamese Network

简介&#xff1a;元学习是一种思想&#xff0c;一般以神经网络作为特征嵌入的工具&#xff0c;实现对数据特征的提取&#xff0c;然后通过构造某种指标以引导优化器对模型参数进行优化。而最小化距离是最常见的学习目标&#xff0c;这就是熟知的度量学习&#xff0c;度量学习里…...

深入HBase——引入

引入 前面我们通过深入HDFS到深入MapReduce &#xff0c;从设计和落地&#xff0c;去深入了解了大数据最底层的基石——存储与计算是如何实现的。 这个专栏则开始来看大数据的三驾马车中最后一个。 通过前面我们对于GFS和MapReduce论文实现的了解&#xff0c;我们知道GFS在数…...

Python创建FastApi项目模板

1. 项目结构规范 myproject/ ├── app/ │ ├── core/ # 核心配置 │ │ ├── config.py # 环境配置 │ │ └── security.py # 安全配置 │ ├── routers/ # 路由模块 │ │ └── users.py # 用户路由 │ ├…...

TCNE 网络安全

一.概况 CTF&#xff08;Capture The Flag&#xff09;在网络安全领域中指的是网络技术人员之间进行技术竞技的一种比赛形式&#xff0c;它起源于1996年的DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式&#xff0c;现已成为全球范围网…...

车规MCU处理器选择Cortex-M7还是Cortex-R52?

车规mcu处理器选择Cortex-M7还是Cortex-R52&#xff1f;跟随小编从具体应用场景、安全等级&#xff08;ASIL&#xff09;、性能、成本进行分析吧。 01安全等级需求 ASIL-D&#xff08;如刹车、转向&#xff09;→ 必选R52。R52原生支持ASIL-D&#xff0c;硬件级错误检测&#…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...