Python的那些事第十五篇:数据分析中的“三剑客”NumPy、Pandas与Matplotlib
数据分析中的“三剑客”:NumPy、Pandas与Matplotlib
在数据分析的世界里,有三位“大侠”常常携手并肩,共同应对各种复杂的数据挑战。它们就是NumPy、Pandas和Matplotlib。这三位“大侠”各怀绝技,相互配合,让数据分析变得轻松又有趣。今天,就让我们走进它们的“江湖”,一探究竟。
一、NumPy:数学运算的“大力士”
NumPy,全称为Numerical Python,是Python中用于科学计算的一个基础库。它就像是数据分析中的“大力士”,专门负责处理各种复杂的数学运算。
(一)数组操作:创建、索引与切片
1. 创建数组
NumPy的核心是数组(ndarray)。创建数组就像变魔术一样简单。我们可以使用numpy.array()
函数,将普通的Python列表变成强大的NumPy数组。
Python列表 | NumPy数组 |
---|---|
[1, 2, 3] | array([1, 2, 3]) |
import numpy as np
my_list = [1, 2, 3]
numpy_array = np.array(my_list)
print(numpy_array)
输出结果:
[1 2 3]
2. 索引
数组的索引就像给每个元素贴上标签。在NumPy中,索引从0开始,就像给每个元素分配了一个座位号。例如,要获取数组中的第一个元素,只需要使用array[0]
。
索引 | 0 | 1 | 2 |
---|---|---|---|
数组 | 1 | 2 | 3 |
print(numpy_array[0]) # 输出1
3. 切片
切片是NumPy的一大绝技。它可以让用户轻松地获取数组的一部分。比如,array[1:3]
可以获取从索引1到索引2(不包括索引3)的元素。
索引 | 0 | 1 | 2 |
---|---|---|---|
数组 | 1 | 2 | 3 |
切片 | 2 | 3 |
print(numpy_array[1:3]) # 输出[2 3]
(二)数学计算:矩阵运算与统计函数
1. 矩阵运算
NumPy在矩阵运算方面可谓是“力大无穷”。它可以轻松地进行矩阵的加、减、乘、除运算。
假设我们有两个矩阵A和B:
A | 1 | 2 |
---|---|---|
3 | 4 | |
B | 5 | 6 |
7 | 8 |
矩阵相加就是将对应位置的元素相加:
A + B | 6 | 8 |
---|---|---|
10 | 12 |
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = A + B
print(C)
输出结果:
[[ 6 8][10 12]]
2. 统计函数
NumPy还提供了丰富的统计函数,比如求和(np.sum()
)、平均值(np.mean()
)等。
假设我们有一个数组data = [1, 2, 3, 4, 5]
,求和就是将所有元素加起来。
数据 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
求和 | 15 |
data = np.array([1, 2, 3, 4, 5])
sum_result = np.sum(data)
print(sum_result) # 输出15
二、Pandas:数据处理的“智多星”
Pandas是数据分析中的“智多星”。它专注于数据的处理和分析,提供了强大的数据结构和操作功能。
(一)数据结构:DataFrame与Series
1. DataFrame
DataFrame是Pandas的核心数据结构之一,它就像是一个表格,可以存储多种类型的数据。每一列可以看作是一个Series。
假设我们有一个学生信息表:
学号 | 姓名 | 年龄 |
---|---|---|
1 | 小明 | 18 |
2 | 小红 | 19 |
import pandas as pd
data = {'学号': [1, 2], '姓名': ['小明', '小红'], '年龄': [18, 19]}
df = pd.DataFrame(data)
print(df)
输出结果:
学号 姓名 年龄
0 1 小明 18
1 2 小红 19
2. Series
Series是Pandas中的另一个重要数据结构,它是一个一维数组,可以存储任何类型的数据。
索引 | 0 | 1 |
---|---|---|
Series | 小明 | 小红 |
series = pd.Series(['小明', '小红'])
print(series)
输出结果:
0 小明
1 小红
dtype: object
(二)数据清洗:处理缺失值与重复值
1. 处理缺失值
在数据分析中,缺失值是常见的“麻烦制造者”。Pandas提供了多种处理缺失值的方法,比如填充(fillna()
)和删除(dropna()
)。
假设我们的数据中有一个缺失值:
学号 | 姓名 | 年龄 |
---|---|---|
1 | 小明 | NaN |
2 | 小红 | 19 |
我们可以用平均值填充缺失值:
df['年龄'].fillna(df['年龄'].mean(), inplace=True)
print(df)
输出结果:
学号 姓名 年龄
0 1 小明 19.0
1 2 小红 19.0
2. 处理重复值
重复值也是数据分析中的“捣蛋鬼”。Pandas可以通过drop_duplicates()
方法轻松地删除重复值。
假设我们的数据中有重复行:
学号 | 姓名 | 年龄 |
---|---|---|
1 | 小明 | 18 |
2 | 小红 | 19 |
1 | 小明 | 18 |
df.drop_duplicates(inplace=True)
print(df)
输出结果:
学号 姓名 年龄
0 1 小明 18
1 2 小红 19
(三)数据处理:筛选、排序与分组
1. 筛选
筛选是数据分析中的常用操作。Pandas可以通过布尔索引轻松地筛选出符合条件的数据。
假设我们想筛选出年龄大于18的学生:
filtered_df = df[df['年龄'] > 18]
print(filtered_df)
输出结果:
学号 姓名 年龄
1 2 小红 19
2. 排序
排序可以让数据更有条理。Pandas可以通过sort_values()
方法对数据进行排序。
假设我们想按照年龄从小到大排序:
sorted_df = df.sort_values(by='年龄')
print(sorted_df)
输出结果:
学号 姓名 年龄
0 1 小明 18
1 2 小红 19
3. 分组
分组是数据分析中的高级操作。Pandas可以通过groupby()
方法对数据进行分组。
假设我们想按照年龄分组,计算每个年龄的学生数量:
grouped_df = df.groupby('年龄').size()
print(grouped_df)
输出结果:
年龄
18 1
19 1
dtype: int64
三、Matplotlib:数据可视化的“艺术家”
Matplotlib是数据分析中的“艺术家”,它通过绘制各种图表,将数据以直观的方式呈现出来。
(一)绘制图表:折线图、柱状图与散点图
1. 折线图
折线图是Matplotlib的“拿手好戏”之一。它可以清晰地展示数据的变化趋势。
假设我们有一组数据,表示某公司每月的销售额:
月份 | 1月 | 2月 | 3月 |
---|---|---|---|
销售额 | 100 | 150 | 200 |
import matplotlib.pyplot as plt
months = ['1月', '2月', '3月']
sales = [100, 150, 200]
plt.plot(months, sales)
plt.xlabel('月份')
plt.ylabel('销售额')
plt.title('每月销售额')
plt.show()
输出结果:(一张折线图,横轴为月份,纵轴为销售额,清晰地展示了销售额的上升趋势)
2. 柱状图
柱状图是Matplotlib的另一个“杀手锏”。它可以直观地展示不同类别之间的数量差异。
假设我们有一组数据,表示不同产品的销售数量:
产品 | A | B | C |
---|---|---|---|
销售数量 | 50 | 80 | 120 |
products = ['A', 'B', 'C']
sales = [50, 80, 120]
plt.bar(products, sales)
plt.xlabel('产品')
plt.ylabel('销售数量')
plt.title('产品销售数量')
plt.show()
输出结果:(一张柱状图,横轴为产品,纵轴为销售数量,直观地展示了不同产品的销售差异)
3. 散点图
散点图是Matplotlib的“秘密武器”。它可以展示两个变量之间的关系。
假设我们有一组数据,表示广告费用与销售额之间的关系:
广告费用 | 100 | 200 | 300 |
---|---|---|---|
销售额 | 500 | 800 | 1200 |
ad_costs = [100, 200, 300]
sales = [500, 800, 1200]
plt.scatter(ad_costs, sales)
plt.xlabel('广告费用')
plt.ylabel('销售额')
plt.title('广告费用与销售额的关系')
plt.show()
输出结果:(一张散点图,横轴为广告费用,纵轴为销售额,清晰地展示了两者之间的正相关关系)
四、三位“大侠”携手作战:一个完整的数据分析案例
为了更好地展示NumPy、Pandas和Matplotlib的强大功能,让我们通过一个完整的数据分析案例来感受它们的“威力”。
假设我们有一份关于某公司员工的工资数据,包括员工的姓名、年龄、部门和工资。我们的任务是分析不同部门的工资分布情况。
(一)数据准备
首先,我们需要准备数据。这里我们使用Pandas的DataFrame
来存储数据。
data = {'姓名': ['小明', '小红', '小李', '小张'],'年龄': [25, 30, 28, 35],'部门': ['销售', '市场', '技术', '销售'],'工资': [5000, 6000, 7000, 8000]
}
df = pd.DataFrame(data)
print(df)
输出结果:
姓名 年龄 部门 工资
0 小明 25 销售 5000
1 小红 30 市场 6000
2 小李 28 技术 7000
3 小张 35 销售 8000
(二)数据清洗
接下来,我们需要对数据进行清洗。检查是否有缺失值或重复值。
# 检查缺失值
print(df.isnull().sum())# 检查重复值
print(df.duplicated().sum())
假设数据没有缺失值和重复值,我们可以继续下一步。
(三)数据分析
1. 筛选与分组
我们先筛选出销售部门的员工,然后对工资进行分组统计。
sales_df = df[df['部门'] == '销售']
grouped_sales = sales_df.groupby('姓名')['工资'].sum()
print(grouped_sales)
输出结果:
姓名
小明 5000
小张 8000
Name: 工资, dtype: int64
2. 数学计算
接下来,我们使用NumPy计算销售部门的平均工资。
average_salary = np.mean(grouped_sales)
print(f'销售部门的平均工资为:{average_salary}')
输出结果:
销售部门的平均工资为:6500.0
(四)数据可视化
最后,我们使用Matplotlib绘制柱状图,展示不同部门的工资分布情况。
departments = df['部门'].unique()
salaries = df.groupby('部门')['工资'].mean()
plt.bar(departments, salaries)
plt.xlabel('部门')
plt.ylabel('平均工资')
plt.title('不同部门的工资分布')
plt.show()
输出结果:(一张柱状图,横轴为部门,纵轴为平均工资,清晰地展示了不同部门的工资差异)
五、总结
通过以上分析,我们可以看到NumPy、Pandas和Matplotlib这三位“大侠”在数据分析中的强大功能。NumPy擅长数学运算,Pandas专注于数据处理,Matplotlib则通过可视化让数据更加直观。它们相互配合,为数据分析提供了强大的支持。
在实际工作中,我们可以根据具体需求灵活运用这三位“大侠”的技能,让数据分析变得更加轻松有趣。无论是在商业决策、科学研究还是日常生活中,数据分析都发挥着越来越重要的作用。而NumPy、Pandas和Matplotlib无疑是数据分析领域的“三剑客”,值得我们深入学习和应用。
希望这篇文章能帮助你更好地了解数据分析的世界,让你在数据分析的“江湖”中也能成为一位“大侠”。
相关文章:
Python的那些事第十五篇:数据分析中的“三剑客”NumPy、Pandas与Matplotlib
数据分析中的“三剑客”:NumPy、Pandas与Matplotlib 在数据分析的世界里,有三位“大侠”常常携手并肩,共同应对各种复杂的数据挑战。它们就是NumPy、Pandas和Matplotlib。这三位“大侠”各怀绝技,相互配合,让数据分析…...
25/2/7 <机器人基础> 牛顿-欧拉递推公式,开闭环
牛顿-欧拉递推公式是用于计算刚体动力学中,刚体的角速度和角加速度的递推关系。这个公式是牛顿第二定律和欧拉旋转定理的结合,适用于描述刚体在空间中的旋转运动。 对于一个刚体,设其在某时刻的角速度为 ω,角加速度为 α…...
vue3父子组件传值方式
父子组件传值方式 在 Vue 3 中,父子组件之间传值主要有以下几种常见方式,下面将详细介绍并给出演示代码。 1. 父组件向子组件传值:使用 props 原理 props 是 Vue 中用于在父组件向子组件传递数据的机制。父组件通过在子组件标签上绑定属性…...
树和二叉树_6
树和二叉树_6 一、leetcode-105二、题解1.引库2.代码 一、leetcode-105 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节…...
使用wpa_supplicant和wpa_cli 扫描wifi热点及配网
一:简要说明 交叉编译wpa_supplicant工具后会有wpa_supplicant和wpa_cli两个程序生产,如果知道需要连接的wifi热点及密码的话不需要遍历及查询所有wifi热点的名字及信号强度等信息的话,使用wpa_supplicant即可,否则还需要使用wpa_…...
个人职业发展——效率为王:AI赋能前端开发
在竞争激烈的IT行业,个人职业发展至关重要。而提升工作效率,无疑是加速职业发展的关键引擎。对于前端开发者而言,面对日益复杂的项目需求、不断变化的技术栈以及大量重复性的工作,如何提升效率,成为一个亟待解决的难题…...
【Android】Android开发应用如何开启任务栏消息通知
Android开发应用如何开启任务栏消息通知 1. 获取通知权限2.编写通知工具类3. 进行任务栏消息通知 1. 获取通知权限 在 AndroidManifest.xml 里加上权限配置,如下。 <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android…...
c语言:取绝对值
假设我们有一个 long 类型的变量 l,我们希望恢复其绝对值。以下是两种方法的对比: 方法1:使用条件语句 这个很好理解,负数时取负运算 ,用于数值的符号反转。 long abs_value(long l) {if (l < 0) {return -l;} e…...
HTML应用指南:利用GET请求获取全国盒马门店位置信息
随着新零售业态的发展,门店位置信息的获取变得至关重要。作为新零售领域的先锋,盒马鲜生不仅在商业模式创新上持续领先,还积极构建广泛的门店网络,以支持其不断增长的用户群体。本篇文章,我们将继续探究GET请求的实际应…...
MongoDB 深度教程:当 NoSQL 遇上幽默
MongoDB 深度教程:当 NoSQL 遇上幽默 欢迎来到这个 MongoDB 的奇妙冒险!如果你已经了解了 MongoDB 的基础知识,比如 CRUD 操作、数据库和集合的概念,但总觉得自己只是停留在门口徘徊,那么今天这篇教程就是为你量身定做…...
windows安装linux子系统【ubuntu】操作步骤
1.在windows系统中开启【适用于Linux的Windows子系统】 控制面板—程序—程序和功能—启用或关闭Windows功能—勾选适用于Linux的Windows子系统–确定 2.下载安装Linux Ubuntu 22.04.5 LTS系统 Ununtu下载链接 3.安装完Ununtu系统后更新系统 sudo apt update4.进入/usr/l…...
通过k8s请求selfsubjectrulesreviews查询权限
当前是通过kubelet进行查询 curl --cacert /etc/kubernetes/pki/ca.crt \ --cert /var/lib/kubelet/pki/kubelet-client-current.pem \ --key /var/lib/kubelet/pki/kubelet-client-current.pem \ -d - \ -H "Content-Type: application/json" \ -H Accept: applicat…...
如何参与开源项目
目的 就是说一下如何参与开源的项目,通过参与QXlsx来说明开源项目是如何参与的,其它的github上的开源项目,也是这样的流程。 关于GitHub: GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行…...
Java 大视界 -- Java 大数据在智能金融监管中的应用与实践(77)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
使用deepseek快速创作ppt
目录 1.在DeekSeek生成PPT脚本2.打开Kimi3.最终效果 DeepSeek作为目前最强大模型,其推理能力炸裂,但是DeepSeek官方没有提供生成PPT功能,如果让DeepSeek做PPT呢? 有个途径:在DeepSeek让其深度思考做出PPT脚本…...
如何在Python中创建和访问列表
在Python中,列表(list)是一种用于存储一系列有序项目的数据结构。这些项目可以是不同类型的,比如整数、浮点数、字符串,甚至是其他列表(形成嵌套列表)。以下是如何在Python中创建和访问列表的基…...
多线程下jdk1.7的头插法导致的死循环问题
20250208 多线程下jdk1.7的头插法导致的死循环问题 多线程下jdk1.7的头插法导致的死循环问题 【新版Java面试专题视频教程,java八股文面试全套真题深度详解(含大厂高频面试真题)】 jdk1.7在hashmap扩容时使用的是头插法,所以扩容…...
低代码系统-插件功能分析( 某道云)
本文主要把其的插件进行了简单分析,不做业务上的梳理,不做推荐。 可大致分为: 群机器人 信息查询 智能识别 实名验证类 数据库类 通知类 通知类 aPaas增强 考勤同步 财务类 类别 插件名称 功能简介 群机器人类 某钉机器人 即在表单处完…...
手搓基于CNN的Chest X-ray图像分类
数据集Chest X-ray PD Dataset 数据集介绍 - 知乎https://zhuanlan.zhihu.com/p/661311561 CPU版本 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import Dataset, DataLoader from torchvision import transforms, models import …...
Golang 并发机制-7:sync.Once实战应用指南
Go的并发模型是其突出的特性之一,但强大的功能也带来了巨大的责任。sync.Once是由Go的sync包提供的同步原语。它的目的是确保一段代码只执行一次,而不管有多少协程试图执行它。这听起来可能很简单,但它改变了并发环境中管理一次性操作的规则。…...
java nio 底层使用的是select 、poll还是epoll
在 Java NIO 中,底层使用的 I/O 多路复用机制取决于操作系统和 JDK 的实现。 🚀 Java NIO 底层使用机制概述 操作系统默认多路复用机制系统调用Linuxepollepoll_create、epoll_ctl、epoll_waitWindowsselect 或 WSAPollselect() 或 WSAPoll()macOS / B…...
Kotlin协程详解——协程取消与超时
目录 一、协程取消 1.取消协程的执行 2.使计算代码可取消 3.在finally中释放资源 4.运行不能取消的代码块 二、协程超时 异步超时与资源管理 一、协程取消 1.取消协程的执行 在一个长时间运行的应用程序中,你也许需要对你的后台协程进行细粒度的控制。 比如…...
双向链表、内核链表和gdb(20250208)
单向链表 节点 数据域 指针域(后继节点) 双向链表 相比于单项指针,双向指针存有前驱节点的地址,使链表的灵活性更高。 内核链表 在内核中 offsetof:获取结构体某个成员到结构体开头的偏移量container_of:根据结…...
全程Kali linux---CTFshow misc入门(38-50)
第三十八题: ctfshow{48b722b570c603ef58cc0b83bbf7680d} 第三十九题: 37换成1,36换成0,就得到长度为287的二进制字符串,因为不能被8整除所以,考虑每7位转换一个字符,得到flag。 ctfshow{5281…...
MySQL 8.0.41安装教程(2025年2月8号)
下载网址:https://www.mysql.com/cn/downloads/ 点击 我选择的是第二个离线安装 点击之后,选择直接下载: 下载完成双击: 我选择的是自定义安装: 右边默认已经存在我选择的8.0.41 点击红框中的,自定义安装路…...
【自学笔记】Deepseek的基础知识点总览-持续更新
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Deepseek知识点总览一、Deepseek简介二、Deepseek的三大适用模式1. 基础模型(V3)2. 深度思考(R1)3. 联网搜索模式 三…...
10N10-ASEMI中低压N沟道MOS管10N10
编辑:ll 10N10-ASEMI中低压N沟道MOS管10N10 型号:10N10 品牌:ASEMI 封装:TO-252 最大漏源电流:10A 漏源击穿电压:100V 批号:最新 RDS(ON)Max:135mΩ …...
2025年2月8日(Adafruit_PCA9685详细使用)
Adafruit_PCA9685 是一个 Python 模块,用于与 PCA9685 驱动芯片进行通信,该芯片常用于控制多个伺服电机。PCA9685 是一个 16 通道的 PWM(脉宽调制)驱动器,常用于需要精确控制多个伺服电机的应用。 以下是详细的使用方…...
MR30分布式IO模块:驱动智能制造工厂的工业互联与高效控制新范式
在工业4.0与智能制造浪潮的推动下,传统制造业正经历着从“机械驱动”向“数据驱动”的深刻转型。作为工业数据连接领域的领军者,明达技术凭借其自主研发的MR30分布式IO模块,以创新的技术架构与卓越的性能表现,为全球制造企业构建了…...
Reqable使用实践
一、背景 日常开发中,难免要抓取请求数据,查看接口数据,从而更好定位问题,基于这个原因,查找了一些抓包工具,例如: HttpCanary、 Steam 、Fiddler等,不是要钱,就是只对苹…...
数据可视化基本套路总结
首先从维基百科上搬出数据可视化的概念: 数据可视化是关于数据之视觉表现形式的研究;其中,这种数据的视觉表现形式被定义为一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。 用人话简单来说,数据…...
TensorFlow域对抗训练DANN神经网络分析MNIST与Blobs数据集梯度反转层提升目标域适应能力可视化...
全文链接:https://tecdat.cn/?p39656 本文围绕基于TensorFlow实现的神经网络对抗训练域适应方法展开研究。详细介绍了梯度反转层的原理与实现,通过MNIST和Blobs等数据集进行实验,对比了不同训练方式(仅源域训练、域对抗训练等&am…...
DNS劫持和HTTPDNS
DNS 劫持是一种网络攻击手段,攻击者通过篡改域名系统(DNS)解析过程,将用户请求的域名重定向到恶意网站或其他不正确的地址。这种攻击可以用于多种目的,例如窃取用户数据、传播恶意软件或进行钓鱼攻击。 举个例子 假设…...
云原生微服务
能够认识到云原生微服务对应用程序设计的影响,描述无状态微服务,并比较单体和微服务架构。要充分利用运营模式,您需要以不同的方式思考应用程序设计。您需要考虑云原生微服务。此图像显示了一个应用程序,该应用程序被设计为小型微…...
【deepSeek R1】Ollama 更改模型安装位置 以及应用安装位置
【deepSeek R1】Ollama 更改模型安装位置 以及应用安装位置 本地版部署deepSeek R1 可以参考文章 3分钟教你搭建属于自己的本地大模型 DeepSeek R1 Ollama 是一个开源工具,旨在帮助用户轻松在本地计算机上运行、部署和管理大型语言模型(LLMs)…...
windows + visual studio 2019 使用cmake 编译构建静、动态库并调用详解
环境 windows visual studio 2019 visual studio 2019创建cmake工程 1. 静态库.lib 1.1 静态库编译生成 以下是我创建的cmake工程文件结构,只关注高亮文件夹部分 libout 存放编译生成的.lib文件libsrc 存放编译用的源代码和头文件CMakeLists.txt 此次编译CMak…...
使用Feign代替RestTemplet
Feign RestTemplet存在的问题 String url "http: //userservice/user/" order.getUserId(); User user restTemplate.getFor0bject(url, User.class);可读性差参数复杂URL难以维护 Feign声明式的Http客户端,官方地址:https://github.com…...
苹果笔记本安装jmeter
下载并安装jmeter即可,jmeter官网下载地址:Apache JMeter - Download Apache JMeter 参考以下文章:“https://blog.csdn.net/weixin_51664828/article/details/145008755”...
设备通过国标GB28181接入EasyCVR,显示在线但视频无法播放的原因排查
安防监控EasyCVR平台支持多种视频源接入,包括但不限于IP摄像头、NVR、编码器、流媒体服务器等。平台采用高效的视频流接入技术,支持大规模视频流的并发接入,确保视频流的稳定性和流畅性。 有用户反馈,项目现场使用国标GB28181接入…...
为什么我喜欢在 CSS 中使用 RegEx
说到正则(RegEx),我们第一反应往往是“在编程中用来匹配或验证字符串”,比如做表单验证。但其实在 CSS 中,也能用到与正则类似的选择器特性,为我们的样式管理带来诸多便利。别怀疑,以下就是如何…...
深度剖析 Redisson 分布式锁:原理、实现与应用实践
文章目录 写在文章开头详解Redisson 分布式锁使用和实现前置准备工作分布式锁的基本使用公平锁的使用联锁的使用读写锁基本使用常见问题Redisson和Jedis有什么区别redisson如何实现分布式锁redisson如何实现分布式锁的可重入redisson如何实现公平锁Redisson的watchdog机制是什么…...
今日AI和商界事件(2025-02-08)
今日AI领域的重大事件主要包括以下几个方面: 一、DeepSeek引发的行业震动 事件概述:DeepSeek作为近期崛起的AI模型,以其低成本、高性能的推理能力引发了广泛关注。其开源策略、独特的出身以及强大的算力表现,使得微软、英伟达等…...
Mac 基于Ollama 本地部署DeepSeek离线模型
最近节日期间最火的除了《哪吒》就是deepseek了,毕竟又让西方各个层面都瑟瑟发抖的产品。DeepSeek凭借其强大的AI能力真的是在全球多个领域展现出强大的影响力。由于受到外部势力的恶意攻击倒是deepseek官方服务不稳定,国内其他厂家的适配版本也不是很稳…...
Python截图轻量化工具
这是用Python做到截图工具,不过由于使用了ctypes调用了Windows的API, 同时访问了Windows中"C:/Windows/Cursors/"中的.cur光标样式文件, 这个工具只适用于Windows环境; 如果要提升其跨平台性的话,需要考虑替换ctypes的一些专属于W…...
怎麼在Chrome中設置代理伺服器?
出於隱私、安全或者訪問特定網路資源的需求,設置代理伺服器顯得尤為重要。本文將詳細介紹如何在Chrome流覽器中進行代理伺服器的設置。 代理伺服器是介於電腦和互聯網之間的一道“中間牆”。幫助間接訪問互聯網資源,這樣實際的IP地址被代理伺服器的IP地…...
【数据结构中链表常用的方法实现过程】
线性表 线性表包括:顺序表、链表、栈,队列等,本节我们先学习顺序表。 顺序表 利用新的数据类型——顺序表,操作数组 顺序表的本质就是对数组的增删改查。 /*** 打印顺序表中的所有元素*/Overridepublic void display() {for (int i 0; i…...
语言月赛 202308【小粉兔处理题解审核志愿者轮换】题解(AC)
》》》点我查看「视频」详解》》》 [语言月赛 202308] 小粉兔处理题解审核志愿者轮换 题目背景 又到了一周的周日,扶苏又像催命一样开始催促小粉兔处理题解审核志愿者的轮换。但是懒狗小粉兔总是把这项工作拖到第二天凌晨。 【这里有一张内部群聊图,…...
第二十二章:游戏结缘与现实的相遇
“终于结束了……” 小冷的手微微颤抖,笔在纸上划过,签下放弃 985 高校研究生入学资格的名字,那一刻,数月来压在心头沉甸甸的巨石轰然崩塌,扬起的尘埃渐渐消散。曾经,学术巅峰犹如夜空中遥不可及却又熠熠生…...
(ICLR=2025)生成的表征对齐:训练扩散Transformer比你想象的更简单
生成的表征对齐:训练扩散Transformer比你想象的更简单 paper是KAIST发表在ICLR 2025的工作 paper title:REPRESENTATION ALIGNMENT FOR GENERATION: TRAINING DIFFUSION TRANSFORMERS IS EASIER THAN YOU THINK Code:链接 ABSTRACT 最近的研究表明&…...
保姆级教程--DeepSeek部署
以DeepSeek-R1或其他类似模型为例,涵盖环境配置、代码部署和运行测试的全流程: 准备工作 1. 注册 Cloud Studio - 访问 [Cloud Studio 官网](https://cloudstudio.net/),使用腾讯云账号登录。 - 完成实名认证(如需长期使用…...