数据分析与挖掘
一 Python 基本语法
-
变量与数据类型 :
-
Python 中变量无需声明,直接赋值即可。
-
常见的数据类型有数值型(整型 int、浮点型 float、复数型 complex)、字符串型(str,用单引号、双引号或三引号括起来)、布尔型(bool,True 和 False)。
-
-
运算符 :
-
算术运算符(+、-、*、/、%、**、//)、
-
比较运算符(==、!=、>、<、>=、<=)
-
逻辑运算符(and、or、not)
-
-
输入输出 :使用 input() 函数接收用户输入,print() 函数输出结果,eval()函数去掉双引号。
-
数据结构运用 :
- 列表(list) :有序可变序列,用方括号 [] 定义,如 numbers = [1, 2, 3, 4]。支持索引、切片、追加(append())、删除(del、remove()、pop())等操作。
- 元组(tuple) :有序不可变序列,用圆括号 () 定义,如 fruits = (“apple”, “banana”, “orange”)。访问元素方式与列表类似,但不能修改元素。
- 字典(dict) :键值对集合,用花括号 {} 定义,如 person = {“name”: “Tom”, “age”: 20}。通过键来访问和修改值,键必须唯一且不可变。
- 集合(set) :无序不重复元素集合,用大括号 {} 或 set() 函数创建,如 colors = {“red”, “green”, “blue”}。支持集合运算(如交集 &、并集 |、差集 -)。
-
程序流程控制 :
- 顺序结构 :按照代码书写的顺序依次执行。
- 选择结构 :if 语句,根据条件是否成立选择执行不同的代码块。基本语法为 if 条件 1: 代码块 1 elif 条件 2: 代码块 2 … else: 代码块 n。
- 循环结构 :for 循环用于遍历可迭代对象(如列表、元组、字符串、字典、集合),如 for num in numbers: print(num)。while 循环根据条件判断是否执行循环体,如 while count < 5: print(count) count +=1。
二、函数
-
函数的语法 :定义函数使用 def 关键字,后跟函数名、参数列表(可选)、冒号和函数体。函数体结束可使用 return 语句返回结果。例如:
def add(a, b):return a + b
-
函数调用 :直接使用函数名并传入相应参数即可,如 result = add(3, 5),调用 add 函数并传入 3 和 5 作为参数,返回结果 8 赋值给 result。
-
参数 :
-
位置参数 :按照定义函数时的参数位置顺序传入,如上面的 a 和 b 就是位置参数。
-
默认参数 :在定义函数时给参数指定默认值,调用时可不传该参数。例如:def greet(name, msg=“Hello”): print(msg, name),调用 greet(“Tom”) 时 msg 使用默认值 “Hello”。
-
关键字参数 :调用函数时通过参数名和值的形式传参,这样可以改变参数的顺序。如 greet(msg=“Hi”, name=“Tom”)。
-
可变参数 :允许函数接收任意数量的参数。*args 用于接收位置参数,形成元组;**kwargs 用于接收关键字参数,形成字典。例如:
def func(*args, **kwargs):print(args)print(kwargs) func(1, 2, 3, name="Tom", age=20)
-
-
Lambda匿名函数:
square = lambda x: x ** 2 print(square(4)) # 输出16
-
自定义函数的编程实现 :根据需求设计函数的功能,明确输入参数和返回值,编写函数体实现相应逻辑。例如自定义一个计算阶乘的函数:
def factorial(n):if n == 0:return 1else:return n * factorial(n-1)
三、正则表达式:提取,匹配与替换
-
元字符与特殊字符 :
-
\d
匹配数字,\w
匹配字母数字,.
匹配任意字符(除换行符) -
^
开头,$
结尾,|
表示或 -
*
匹配前面的字符零次或多次,+
匹配前面的字符一次或多次,?
匹配前面的字符零次或一次,[]
匹配括号内的任意一个字符
-
-
字符获取 :使用 re 模块中的 findall() 函数可获取字符串中所有匹配正则表达式的字符。
import re pattern = r"\d+" string = "I have 2 apples and 3 bananas." result = re.findall(pattern, string) print(result) 输出 ['2', '3'],获取字符串中的所有数字。
-
匹配 :match() 函数从字符串开头开始匹配,若匹配成功返回匹配对象,否则返回 None。search() 函数在整个字符串中搜索匹配,找到第一个匹配的位置后返回匹配对象。例如:
pattern = r"apple" string1 = "I like apple." string2 = "apple is delicious." print(re.match(pattern, string1)) # None,因为不是从开头匹配print(re.search(pattern, string1)) # 匹配对象print(re.match(pattern, string2)) # 匹配对象
-
替换 :sub() 函数用于替换字符串中匹配正则表达式的部分。例如:
pattern = r"apple"string = "I like apple and apple pie."new_string = re.sub(pattern, "orange", string) print(new_string) # 输出 "I like orange and orange pie."
四、文件相关知识
-
文本文件 :
- 读取 :使用 open() 函数打开文件,默认是只读模式(‘r’)。例如:
f = open("test.txt", "r")content = f.read() # 读取全部内容# 按行读取 content = f.readlines()f.close() ``
-
写入 :以写入模式(‘w’)打开文件(会覆盖原有内容)或追加模式(‘a’)打开文件(在文件末尾追加内容)。例如:
f = open("test.txt", "w")f.write("Hello, world!")f.close()
-
CSV 文件 :利用 Python 的 csv 模块进行读写。读取时使用 csv.reader() 或 csv.DictReader(),写入时使用 csv.writer() 或 csv.DictWriter()。例如:
import csv # 读取with open("data.csv", "r") as f:reader = csv.reader(f)for row in reader:print(row)# 写入with open("data.csv", "w", newline="") as f:writer = csv.writer(f)writer.writerow(["Name", "Age"])writer.writerow(["Tom", 20])
-
Excel 文件 :借助 pandas 库的 read_excel() 函数读取,to_excel() 函数写入。例如:
#读取df = pd.read_excel("data.xlsx")print(df) # 写入df.to_excel("new_data.xlsx", index=False)
- JSON文件
import json data = {"name": "Alice", "age": 25} with open("data.json", "w") as f:json.dump(data, f) # 写入with open("data.json", "r") as f:loaded_data = json.load(f) # 读取
五、NumPy 数值计算基础知识
-
NumPy 数组的创建 :使用 numpy.array() 函数创建数组,例如:
import numpy as np arr = np.array([1, 2, 3, 4, 5])
-
数组的基本属性 :包括形状(shape)、维度(ndim)、数据类型(dtype)等。例如:
print(arr.shape) # 输出 (5,) print(arr.ndim) # 输出 1 print(arr.dtype) # 输出 int32(具体类型可能因系统和数据而异)
-
数组的运算(广播机制) :支持元素级运算,如加、减、乘、除、幂等。例如:
arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) print(arr1 + arr2) # 输出 [5 7 9] print(arr1 * arr2) # 输出 [4 10 18] # 广播机制 a = np.array([[1,2][3,4]]) b = np.array([10,20]) print(a + b) # 广播加法 -> [[11,22][13,24]]
-
数组的索引与切片 :与 Python 列表类似,但更强大。可以进行多维数组的索引和切片。例如:
arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr[0, 1]) # 输出 2,访问第一行第二列元素print(arr[:, 1:3]) # 输出 [[2 3] [5 6]],获取所有行的第 2 到第 3 列
六、pandas 统计分析基础知识
-
DataFrame 和 Series :
-
DataFrame 是二维表格型数据结构,可看作是由多个 Series 组成。
-
Series 是一维数组,与 NumPy 数组类似,但带有标签(索引)。例如:
import pandas as pd data = {'Name': ['Tom', 'Jerry'], 'Age': [20, 18]} df = pd.DataFrame(data)print(df) # 输出 Name Age 0 Tom 20 1 Jerry 18
-
-
基本统计分析 :使用 describe() 函数可获取数据的统计摘要,包括计数、均值、标准差、最小值、四分位数、最大值等。例如:
print(df.describe())
-
数据排序 :sort_values() 函数按指定列的值排序,ascending 参数控制升序或降序。例如:
# 按年龄降序排列 df_sorted = df.sort_values(by="Age", ascending=False) print(df_sorted)
七、pandas 数据预处理知识
-
数据清洗 :
-
处理缺失值 :
-
使用 isnull() 函数检查缺失值,
-
dropna() 函数删除含有缺失值的行或列,
-
fillna() 函数填充缺失值。例如:
df = pd.DataFrame({'A': [1, 2, None, 4], 'B': [5, None, None, 8]})print(df.isnull()) # 显示缺失值位置df_drop = df.dropna() # 删除有缺失值的行df_fill = df.fillna(0) # 用 0 填充缺失值
-
-
数据去重 :drop_duplicates() 函数用于删除重复数据。例如:
df = pd.DataFrame({'A': [1, 1, 2, 2], 'B': [3, 3, 4, 4]}) df_unique = df.drop_duplicates() print(df_unique)
-
-
数据转换 :
-
独热编码
df_encoded = pd.get_dummies(df, columns=["Category"])
-
数据类型转换 :astype() 函数可将数据转换为指定类型。例如:
df['A'] = df['A'].astype(int)
-
数据标准化、归一化 :对于数值型数据,可使用 preprocessing 模块中的 scale() 函数进行标准化(Z-score 标准化)或 minmax_scale() 函数进行归一化。例如:
from sklearn import preprocessing data_standardized = preprocessing.scale(df['A']) data_normalized = preprocessing.minmax_scale(df['A'])
-
-
数据合并
-
concat() 函数 :用于沿着某一轴将多个 DataFrame 或 Series 连接起来。例如:
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]}) df_concat = pd.concat([df1, df2], axis=0) # 按行连接
-
merge() 函数 :根据一个或多个键将行连接起来,类似于 SQL 中的 join 操作。例如:
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value1': [1, 2, 3]}) df2 = pd.DataFrame({'key': ['A', 'B', 'D'], 'value2': [4, 5, 6]}) df_merged = pd.merge(df1, df2, on='key') # 内连接,只保留两个表都有 key 的行
-
八 总结
- 数据获取:正则表达式提取日志关键字段,pandas读取CSV/Excel。
- 清洗与转换:处理缺失值、异常值,标准化数值特征。
- 分析建模:Numpy加速数值计算,pandas进行聚合统计。
- 自动化流程:通过函数封装常用操作(如数据清洗函数)。
相关文章:
数据分析与挖掘
一 Python 基本语法 变量与数据类型 : Python 中变量无需声明,直接赋值即可。 常见的数据类型有数值型(整型 int、浮点型 float、复数型 complex)、字符串型(str,用单引号、双引号或三引号括起来ÿ…...
RoBoflow数据集的介绍
https://public.roboflow.com/object-detection(该数据集的网址) 可以看到一些基本情况 如果我们想要下载,直接点击 点击图像可以看到一些基本情况 可以点击红色箭头所指,右边是可供选择的一些yolo模型的格式 如果你想下载…...
大模型Rag - 两大检索技术
一、稀疏检索:关键词匹配的经典代表 稀疏检索是一种基于关键词统计的传统检索方法。其基本思想是:通过词频和文档频率来衡量一个文档与查询的相关性。 核心原理 文档和查询都被表示为稀疏向量(如词袋模型),只有在词…...
【T型三电平仿真】SVPWM调制
目录 仿真模型分析 克拉克变换 大扇区判断编辑 小区域判断 计算基本电压矢量作用时间 确定基本电压矢量的作用顺序 作用时间和矢量作用顺序对应 七段式化生成阶梯图 矢量状态分布 本人学习过程中提出的问题和解释 SVPWM调制实现了什么功能 SVPWM的算法步骤是什么…...
树莓派5-开发应用笔记
0.树莓派系统目录 /home:用户目录。 除了root用户外,其他所有的使用者的数据都存放在这个目录下,在树莓派的系统中,/home目录中有一个pi的子目录,这个就是pi用户的默认目录。 /bin: 主要放置系统的必备执行文件目录。 …...
[Java实战经验]异常处理最佳实践
一些好的异常处理实践。 目录 异常设计自定义异常为异常设计错误代码(状态码)设计粒度全局异常处理异常日志信息保留 异常处理时机资源管理try-with-resources异常中的事务 异常设计 自定义异常 自定义异常设计,如业务异常定义BusinessExce…...
AOSP的Doze模式-LightIdle初识
前言 从Android 6.0开始,谷歌引入了Doze模式(打盹模式)的省电技术延长电池使用时间。根据第三方测试显示,两台同样的Nexus 5,开启的Doze的一台待机能达到533小时,而未开启Doze的一台待机只能达到200小时。Doze省电效果十分明显。…...
QML动画--ParticleSystem
ParticleSystem 是 QML 中用于创建和管理粒子系统的组件,可以制作各种粒子效果如火焰、烟雾、爆炸等。 基本用法 qml import QtQuick.Particles 2.15ParticleSystem {id: particleSystemImageParticle {source: "particle.png"color: "red"a…...
Win 11 重装 Ubuntu 双系统方法
有时候 Ubuntu 环境崩溃了,或者版本过低,需要卸载重装。本文介绍重装的方法,默认已经有一个双系统。 1. 删除原先 Ubuntu 分区 首先打开 Win 的磁盘管理,找到 Ubuntu 的分区,右键删除分区(注意不要错删 wi…...
单例模式:懒汉式的两种优化写法
单例模式:全局唯一实例 懒汉式:获取时才初始化 ①静态局部变量实现(Meyer’s Singleton)【推荐】 /* 类内创建自身实例的可行性分析:在C中,类可以通过静态成员函数创建自身实例。这种机制的核心在于&…...
详细解释浏览器是如何渲染页面的?
渲染流程概述 渲染的目标:将HTML文本转化为可以看到的像素点 当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务࿰…...
高速系统设计简介
1.1 PCB 设计技术回顾 1981 年 8 月 12 日,IBM 正式发布了历史上第一台个人电脑,自此之后,个人电脑融入了人们生活和工作的各个角落,人类从此进入了个人电脑时代。个人电脑的出现,不仅促进了电子产品在消费领域的发展…...
不规则曲面上两点距离求取
背景 在CT中求皮肤上两点间的弧长。由于人体表面并不是规则的曲面,不可能用圆的弧长求取方法来计算出两点间的弧长。 而在不规则的曲面上求两点的距离,都可以用类似测地线距离求取的方式来求取(积分),而转化为搜索路…...
用usb网卡 虚拟机无法开到全双工的解决办法
今天突发奇想 给unraid宿主机插了两个一摸一样的usb网卡 2.5g的 直通给不同的虚拟机 这里unraid需要安装"USB Manager" 请给unraid自备环境 直通的时候 第一次还没生效 看不到网卡 我又在unraid的管理界面 顶部可以看到多出来一个 "usb"页面 打开可…...
webpack 中 chunks详解
webpack 中 chunks详解 在 Webpack 项目中,webpack.config.js 是核心配置文件,而非 webpack.json。chunks 的概念与 Webpack 的代码分割(Code Splitting)功能密切相关,通过 optimization.splitChunks 配置项可以实现对…...
Java @Serial 注解深度解析
Java Serial 注解深度解析 1. 注解本质 Serial 是 Java 14 引入的编译时校验注解,用于标记序列化相关成员,帮助开发者避免常见的序列化错误。 2. 核心作用 (1) 主要用途 标记序列化相关的特殊方法/字段 提供编译时检查 替代传统的命名约定验证 (…...
齐次坐标变换+Unity矩阵变换
矩阵变换 变换(transform):指的是我们把一些数据,如点,方向向量甚至是颜色,通过某种方式(矩阵运算),进行转换的过程。 变换类型 线性变换:保留矢量加和标量乘的计算 f(x)…...
Python语法系列博客 · 第9期[特殊字符] 函数参数进阶:*args、**kwargs 与参数解包技巧
上一期小练习解答(第8期回顾) ✅ 练习1:整数转字符串列表 nums [1, 2, 3, 4, 5] str_list list(map(str, nums))✅ 练习2:筛选回文字符串 words ["madam", "hello", "noon", "python&qu…...
Python语法系列博客 · 第4期[特殊字符] 函数的定义与使用:构建可复用的模块
上一期小练习解答(第3期回顾) ✅ 练习1:创建一个列表,添加5个名字,并用循环打印 names ["Alice", "Bob", "Charlie", "David", "Eva"] for name in names:print…...
6547网:2025年3月 Python编程等级考试一级真题试卷
2025年3月青少年软件编程Python等级考试(一级)真题试卷 题目总数:37 总分数:100 选择题 第 1 题 单选题 下列哪个软件不能运行Python程序?( ) A.JupyterNotebook B.Pycharm C.原版…...
微前端框架Module Federation
以下是 Module Federation 的核心知识点,并结合微前端架构的设计思想,帮助我们构建完整的知识体系: 一、Module Federation 基础概念 1. 什么是 Module Federation? 定义:Webpack 5 引入的一项革命性功能,允许在运行时动态加载其他独立构建的应用模块(微前端),实现跨…...
AUTOSAR图解==>AUTOSAR_SWS_IntrusionDetectionSystemManager
AUTOSAR 入侵检测系统管理器 (IdsM) 详解 AUTOSAR安全框架的核心组件 1. 概述 AUTOSAR 入侵检测系统管理器(Intrusion Detection System Manager, IdsM)是AUTOSAR标准中安全防护框架的关键组成部分,专门负责处理车载安全事件。IdsM模块提供了…...
Alan AI - 面向Web的生成式AI SDK
本文翻译整理自:https://github.com/alan-ai/alan-sdk-web 文章目录 一、关于 Alan AI相关链接资源关键功能特性Alan AI StudioAlan AI SDKAlan AI Cloud 二、为什么选择Alan AI?三、快速开始四、下载安装五、示例应用六、其他平台SDK七、获取帮助 一、关…...
递归下降 ll(1) 型文法 识别二元组文法分析
#include <stdio.h> #include <string.h>FILE* fp; FILE* fa2;char* str new char[1200]; // 循环读取文件,分200字节读取char* peek;// 表格 typedef struct table {char* sign;char* kind;char* message; } signtable;signtable* list; // 数…...
Qt unknown module(s) in qt:serialport解决方法
在Ubuntu和CentOS系统中,若使用Qt时遇到Unknown module(s) in QT: serialport错误,通常是由于未正确安装Qt的串口模块(QSerialPort)或项目配置不当导致。以下是针对两种系统的解决方案: 一、安装Qt串口模块 1. Ubuntu/Debian系列 安装开发包: 执行以下命令安装Qt5串口模…...
金融数学专题6 证券问题与资本利得税
一、固定利息证券 特点:利息固定,且可以在证券名字中体现。 发行价格:公司公开发行证券的价格。 固定利率证券通常在其名称中包括应付利率,例如,8% Treasury Stock 2021 或 5% Treasury Gilt 2018。每位持有人应得的年利息是通…...
XGBoost
XGBoost 假设一共有 m m m个基模型,分别为 f 1 ( x ) , f 2 ( x ) , … , f m ( x ) f_1(x),f_2(x),\dots,f_m(x) f1(x),f2(x),…,fm(x), n n n个样本, x 1 , x 2 , … , x n x_1,x_2,\dots,x_n x1,x2,…,xn,则XGBoo…...
Kubernetes 多主多从集群部署完整文档
好久不见呀!今天给大家整点干货尝尝(其实是自己的总结),主打的就是全程无尿点。 Kubernetes 多主多从集群部署完整文档 1. 机器列表 PS: master,lb,nfs机器均为CentOS 7,其他为Ubuntu 22.04 L…...
使用Spring Validation实现参数校验
引入Spring Validation 起步依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency>参数校验失败异常处理 所有的http请求异常都会被拦截处理 exception…...
用思维导图解锁计算机科学导论的知识宝库
引言 在计算机科学的浩瀚海洋中,“计算机科学导论” 如同开启宝藏的钥匙,是众多学习者踏入这片领域的第一步。今天,我将借助思维导图这一强大工具,带大家梳理计算机科学导论的关键知识点,同时也希望能为大家在学习的道…...
软件架构分层策略对比及Go项目实践
一、水平分层 vs 功能划分 vs 组件划分 维度水平分层功能划分组件划分核心思想按垂直层次划分职责(如表示层、业务层、数据层)按业务功能模块划分(如用户管理、订单服务、支付模块)按技术或业务能力划分独立组件(如数…...
Python学习之Seaborn
Python学习之Seaborn 如果说Matplotlib试图让简单的事情变得容易,让困难的事情成为可能,那么Seaborn试图让一组定义明确的复杂的事情变得简单. Seaborn是在Matplotlib的基础上开发的高级可视化库, 它更专注于数据可视化的美学设计和统计图形的绘制. Matplotlib需要大量的代码创…...
【树莓派Pico FreeRTOS】-中断服务与二值信号量
中断服务与二值信号量 RP2040 由 Raspberry Pi 设计,具有双核 Arm Cortex-M0+ 处理器和 264KB 内部 RAM,并支持高达 16MB 的片外闪存。 广泛的灵活 I/O 选项包括 I2C、SPI 和独特的可编程 I/O (PIO)。 FreeRTOS 由 Real Time Engineers Ltd. 独家拥有、开发和维护。FreeRTO…...
QT采用cmake编译时文件解析
CMakeLists.txt # 设置版本要求 cmake_minimum_required(VERSION 3.16) # 设置项目名 project(QtWidgetsApplication3 LANGUAGES CXX)#设置C版本 set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON)find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) fi…...
代码随想录背包问题完结
322. 零钱兑换 视频讲解:动态规划之完全背包,装满背包最少的物品件数是多少?| LeetCode:322.零钱兑换_哔哩哔哩_bilibili 代码随想录 该题在递推公式部分和474.一和零一样,求装多少个 不同在于 该题是完全背包&a…...
Java 内存优化:如何避免内存泄漏?
Java 内存优化:如何避免内存泄漏? 在 Java 开发中,内存管理是一个至关重要的主题。尽管 Java 拥有自动垃圾回收机制,但这并不意味着开发人员可以忽视内存管理。内存泄漏是一个常见的问题,如果不加以控制,可…...
数量关系 多级数列1
机械划分 真看不出来 无明显关系 后减前作差 分数数列 无规律 作乘 作积 太复杂啦 太复杂啦...
【AI提示词】物理学家
提示说明 物理学家是为那些希望深入了解物理学原理、探索宇宙奥秘或进行科学实验的用户设计的。这个专家能够提供精确的物理学概念解释、复杂的理论分析以及实验设计建议。 提示词 # 角色 物理学家## 注意 1. 物理学家专家应具备深厚的物理学知识和对科学探究的热情。 2. 专…...
黑马点评秒杀优化
异步优化秒杀业务 回顾之前的内容黑马点评 秒杀优惠券集群下一人一单超卖问题-CSDN博客,为了处理并发情况下的线程安全和数据一致性的问题,我们已经完成了查询优惠券信息、判断秒杀是否开始和结束、检查库存、用户ID加锁、创建订单和扣减库存。 尽管之前…...
宇树机器狗go2—slam建图(1)点云格式
0.前言 上一篇番外文章教大家如何在宇树机器狗go2的gazebo仿真环境中实现简单的导航运动,本期文章会教大家如何让宇树的机器狗go2在仿真环境中进行slam建图时经常会遇到的一些点云格式,在后续的slam建图和slam算法解析的时候会经常与这些点云信息打交道…...
支持中文对齐的命令行表格打印python库——tableprint
文章目录 快速入门 还在为表格中含有中文,命令行打印无法对齐而苦恼吗? 还在为冗长的数据添加代码而抓狂吗? tableprint来了!!!,它完美的解决了上述两个问题,快来试试吧!…...
力扣-hot100(无重复字符的最长子串)
3. 无重复字符的最长子串 中等 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。暴力直观解法一࿱…...
javaNIO详解
Java NIO(Non-blocking I/O)详解 Java NIO(New I/O)是 Java 1.4 引入的高性能 I/O 框架,相比传统的 BIO(Blocking I/O),它提供了非阻塞、多路复用、零拷贝等能力,适用于…...
高精度算法(加、减、乘、除、阶乘和)
归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言📝 唯有主动付出,才有丰富的果…...
在复杂性的迷宫里寻找路标 —— 读《人月神话》有感
初读《人月神话》时,正值参与的第一个大型项目陷入泥潭:需求像不断膨胀的气球,团队规模从 10 人扩充到 30 人,进度却像被灌了铅的钟表,指针越来越沉重。布鲁克斯在书中写下的 "向进度落后的项目增加人力ÿ…...
OpenFeign终极指南:超时控制、重试策略、拦截器与自定义Starter
目录 前言 使用 引入依赖 开启feign 编写feign客户端 效果 日志 超时配置 重试机制 拦截器 Fallback兜底返回 引入依赖 编写兜底实现 连接池 引入依赖 开启连接池 制作OpenFeign Starter 编写配置类 自动装配 前言 在RPC框架中,有openFeign和Du…...
如何使用flatten函数在Terraform 中迭代嵌套map
简介 flatten 接受一个列表,并用列表内容的扁平序列替换列表中的任何元素。 > flatten([["a", "b"], [], ["c"]]) ["a", "b", "c"] > flatten([[["a", "b"], []], [&quo…...
数字电子技术基础(五十)——硬件描述语言简介
目录 1 硬件描述语言简介 1.1 硬件描述语言简介 1.2 硬件编程语言的发展历史 1.3 两种硬件描述的比较 1.4 硬件描述语言的应用场景 1.5 基本程序结构 1.5.1 基本程序结构 1.5.2 基本语句和描述方法 1.5.3 仿真 1 硬件描述语言简介 1.1 硬件描述语言简介 硬件描述语…...
【PCIE配置空间】
1 PCIE配置空间 1.1 软件如何知道PCIE设备是Swith,RC还是EP? –软件通过读取寄存器信息。 PCIE配置空间• PCIE寄存器;--PCIE配置协议规定必须实现的空间。--PCIE存在两种配置空间Type0/Type1;--Type0配置空间EP设备必须实现;-…...
Python爬虫实战:获取网易新闻数据
一、引言 随着互联网的飞速发展,网络上蕴含着海量的信息资源。新闻数据作为其中的重要组成部分,对于舆情分析、市场研究、信息传播等多个领域具有重要价值。网易新闻作为国内知名的新闻平台,拥有丰富多样的新闻内容。使用 Python 的 Scrapy 框架进行网易新闻数据的爬取,可…...