Python60日基础学习打卡D31
如何把一个文件,拆分成多个具有着独立功能的文件,然后通过import的方式,来调用这些文件?这样具有几个好处:
- 可以让项目文件变得更加规范和清晰
- 可以让项目文件更加容易维护,修改某一个功能的时候,只需要修改一个文件,而不需要修改多个文件。
- 文件变得更容易复用,部分通用的文件可以单独拿出来,进行其他项目的复用。
机器学习项目的流程
一个典型的机器学习项目通常包含以下阶段:
- 数据加载:从文件、数据库、API 等获取原始数据。
- 命名参考:
load_data.py
、data_loader.py
- 命名参考:
- 数据探索与可视化:了解数据特性,初期可用 Jupyter Notebook,成熟后固化绘图函数。
- 命名参考:
eda.py
、visualization_utils.py
- 命名参考:
- 数据预处理:处理缺失值、异常值,进行标准化、归一化、编码等操作。
- 命名参考:
preprocess.py
、data_cleaning.py
、data_transformation.py
- 命名参考:
- 特征工程:创建新特征,选择、优化现有特征。
- 命名参考:
feature_engineering.py
- 命名参考:
- 模型训练:构建模型架构,设置超参数并训练,保存模型。
- 命名参考:
model.py
、train.py
- 命名参考:
- 模型评估:用合适指标评估模型在测试集上的性能,生成报告。
- 命名参考:
evaluate.py
- 命名参考:
- 模型预测:用训练好的模型对新数据预测。
- 命名参考:
predict.py
、inference.py
- 命名参考:
文件的组织
1. 项目核心代码组织
- src/(source的缩写):存放项目的核心源代码。按照机器学习项目阶段进一步细分:
- src/data/:放置与数据相关的代码。
src/data/load_data.py
:负责从各类数据源(如文件系统、数据库、API 等)读取原始数据。src/data/preprocess.py
:进行数据清洗(处理缺失值、异常值)、数据转换(标准化、归一化、编码等)操作。src/data/feature_engineering.py
:根据业务和数据特点,创建新特征或对现有特征进行选择、优化。
- src/models/:关于模型的代码。
src/models/model.py
:定义模型架构,比如神经网络结构、机器学习算法模型设定等。src/models/train.py
:设置模型超参数,并执行训练过程,保存训练好的模型。src/models/evaluate.py
:使用合适的评估指标(如准确率、召回率、均方误差等),在测试集上评估模型性能,生成评估报告。src/models/predict.py
或src/models/inference.py
:利用训练好的模型对新数据进行预测。
- src/utils/:存放通用辅助函数代码,可进一步细分:
src/utils/io_utils.py
:包含文件读写相关帮助函数,比如读取特定格式文件、保存数据到文件等。src/utils/logging_utils.py
:实现日志记录功能,方便记录项目运行过程中的信息,便于调试和监控。src/utils/math_utils.py
:特定的数值计算函数,像自定义的矩阵运算、统计计算等。src/utils/plotting_utils.py
:绘图工具函数,用于生成数据可视化图表(如绘制损失函数变化曲线、特征分布直方图等 )。
- src/data/:放置与数据相关的代码。
2. 配置文件管理
- config/ 目录:集中存放项目的配置文件,方便管理和切换不同环境(开发、测试、生产)的配置。
config/config.py
或config/settings.py
:以 Python 代码形式定义配置参数。config/config.yaml
或config/config.json
:采用 YAML 或 JSON 格式,清晰列出文件路径、模型超参数、随机种子、API 密钥等可配置参数。.env
文件:通常放在项目根目录,用于存储敏感信息(如数据库密码、API 密钥等),在代码中通过环境变量的方式读取,一般会被.gitignore
忽略,防止敏感信息泄露。
3. 实验与探索代码
-
notebooks/ 或 experiments/ 目录:用于初期的数据探索、快速实验、模型原型验证。
notebooks/initial_eda.ipynb
:在项目初期,使用 Jupyter Notebook 进行数据探索与可视化,了解数据特性,分析数据分布、相关性等。experiments/model_experimentation.py
:编写脚本对不同模型架构、超参数组合进行快速实验,对比实验结果,寻找最优模型设置。
这部分往往是最开始的探索阶段,后面跑通了后拆分成了完整的项目,留作纪念用。
4. 项目产出物管理
- data/ 目录:存放项目相关数据。
data/raw/
:放置从外部获取的未经处理的原始数据,保持数据原始状态。data/processed/
:存放经过预处理(清洗、转换、特征工程等操作)后的数据,供模型训练和评估使用。data/interim/
:(可选)保存中间处理结果,比如数据清洗过程中生成的临时文件、特征工程中间步骤产生的数据等。
- models/ 目录:专门存放训练好的模型文件,根据模型保存格式不同,可能是
.pkl
(Python pickle 格式,常用于保存 sklearn 模型 )、.h5
(常用于保存 Keras 模型 )、.joblib
等。 - reports/ 或 output/ 目录:存储项目运行产生的各类报告和输出文件。
reports/evaluation_report.txt
:记录模型评估的详细结果,包括各项评估指标数值、模型性能分析等。reports/visualizations/
:存放数据可视化图片,如损失函数收敛图、预测结果对比图等。output/logs/
:保存项目运行日志文件,记录项目从开始到结束过程中的关键信息,如训练开始时间、训练过程中的损失值变化、预测时间等。
总结一下通用的拆分起步思路:
- 首先,按照机器学习的主要工作流程(数据处理、训练、评估等)将代码分离到不同的
.py
文件中。 这是最基本也是最有价值的一步。 - 然后,创建一个
utils.py
来存放通用的辅助函数。 - 考虑将所有配置参数集中到一个
config.py
文件中。 - 为你的数据和模型产出物创建专门的顶层目录,如
data/
和models/
,将它们与你的源代码(通常放在src/
目录)分开。
当遵循这些通用的拆分思路和原则时,项目结构自然会变得清晰。
注意事项
if name == "main"
常常会看到if name == "main"这个写法,实际上,每个文件都是一个对象,对象就会有属性和方法。
如果直接运行这个文件,则__name__等于__main__,若这个文件被其他模块导入,则__name__不等于__main__。
这个写法有如下好处:
-
明确程序起点:一个 Python 项目往往由多个模块组成。if name == "main" 可清晰界定程序执行的起始位置。比如一个包含数据处理模块 data_processing.py、模型训练模块 model_training.py 的机器学习项目,在 model_training.py 中用 if name == "main" 包裹训练相关的主逻辑代码,运行该文件时就知道需要从这里开始执行(其他文件都是附属文件),让项目结构和执行流程更清晰。(大多时候如此)
-
避免执行:python遵从模块导入即执行机制,当你使用 import xxx 导入一个模块时,Python 会执行该模块中的所有顶层代码(即不在任何函数或类内部的代码)。如果顶层代码中定义了全局变量或执行了某些操作(如读取文件、初始化数据库连接),这些操作会在导入时立即生效,并可能影响整个程序的状态。为了避免执行不必要的代码,我们可以使用 if name == "main" 来避免在导入时执行不必要的代码。这样,只有当模块被直接运行时(即被执行 python xxx.py),才会执行顶层代码,而导入时则不会执行。这样,我们就可以确保在导入模块时,不会执行不必要的代码,从而提高程序的性能和可维护性。
-
合理的资源管理:if name == "main" 与定义 main 函数结合使用,函数内变量在函数执行完这些变量被释放,能及时回收内存资源,避免内存泄漏,保证程序高效运行。
编码格式
规范的py文件,首行会有:# -- coding: utf-8 --
主要目的是 显式声明文件的编码格式,确保 Python 解释器能正确读取和解析文件中的非 ASCII 字符(如中文、日文、特殊符号等)。也就是说这个是写给解释器看的。
因为,在 Python 2.x 时代,默认编码是 ASCII,不支持直接在代码中写入非 ASCII 字符(如中文注释、字符串中的中文),否则会报错(SyntaxError: Non-UTF-8 code starting with...)。但是Python 3.x 默认为 UTF-8 编码,理论上可以省略编码声明。但实际开发中,为了兼容旧代码、明确文件编码规则,或在团队协作中避免因编辑器 / 环境配置不同导致的乱码问题,许多开发者仍会保留这一行声明。
ps:
- 编码声明必须出现在文件的前两行(通常是首行),否则会被忽略。
- 如果编码格式没问题,可能是vscode的编码格式不是utf-8,可以尝试修改编码格式。
- 常见的编码报错是因为字符串编码问题,可以尝试显式转化,即读取的时候转化为utf-8编码。
非 ASCII 字符的代码如下所示:
In [1]:
# -*- coding: utf-8 -*- msg = "你好,世界!" # 中文字符串 print(msg)
你好,世界!
很多时候,项目中会包含gitattribute文件,来确保在不同操作系统和编辑器中,文件的编码格式一致。这里我们后面说到git工具再介绍
类型注解
Python 的类型注解是在 Python 3.5+ 引入的特性,用于为变量、函数参数、返回值和类属性等添加类型信息。虽然 Python 仍是动态类型语言,但类型注解可以提高代码可读性、可维护性,并支持静态类型检查工具(如 mypy)。
其次你在安装python插件的时候,附带安装了2个插件
- 一个是python debugger用于断点调试
- 另一个是pylance,用于代码提示和类型检查,这个插件会根据你的代码中的类型注解,给出相应的提示和检查,比如你定义了一个函数,参数类型是int,那么当你传入一个字符串时,它会提示你传入的参数类型不正确。
变量类型注解语法为 变量名: 类型
# 变量的类型注解
name: str = "Alice"
age: int = 30
height: float = 1.75
is_student: bool = False
函数类型注解为函数参数和返回值指定类型,语法为 def 函数名(参数: 类型) -> 返回类型。
def add(a: int, b: int) -> int:return a + bdef greet(name: str) -> None:print(f"Hello, {name}")
类属性与方法的类型注解:为类的属性和方法添加类型信息。
# 定义一个矩形类
class Rectangle:width: float # 矩形宽度(浮点数),类属性的类型注解(不初始化值)height: float # 矩形高度(浮点数)def __init__(self, width: float, height: float):self.width = widthself.height = heightdef area(self) -> float:# 计算面积(宽度 × 高度)return self.width * self.height
上述的width: float # 矩形宽度(浮点数)
这个写法由于没有对变量赋值,所以是一种类型注解写法。总之,类型注解只对变量名、函数输入/返回的类型做了注解,不对运行起到真正作用
相关文章:
Python60日基础学习打卡D31
如何把一个文件,拆分成多个具有着独立功能的文件,然后通过import的方式,来调用这些文件?这样具有几个好处: 可以让项目文件变得更加规范和清晰可以让项目文件更加容易维护,修改某一个功能的时候࿰…...
命名常量集合接口INamedConstantCollection<T>实现
public interface INamedConstantCollection<TObject, TName> : IEnumerable<TObject>, IEnumerable where TName : IComparable{TObject this[TName name] { get; }TObject this[int index] { get; }int Count { get; }int Capacity { get; }} 这是一个泛型接口&…...
TYUT-企业级开发教程-第6章
这一章 考点不多 什么是缓存?为什么要设计出缓存? 企业级应用为了避免读取数据时受限于数据库的访问效率而导致整体系统性能偏低,通 常会在应用程序与数据库之间建立一种临时的数据存储机制,该临时存储数据的区域称 为缓存。缓存…...
反射在spring boot自动配置的应用
目录 一,背景 二,知识回顾 2.1 理解使用反射技术,读取配置文件创建目标对象(成员变量,方法,构造方法等) 三,springboot自动配置 3.1 反射在自动配置中的工作流程 3.2 浏览源码…...
项目进度延误,如何按时交付?
项目进度延误可以通过加强计划管理、优化资源分配、强化团队沟通、设置关键里程碑和风险管理机制等方式来实现按时交付。加强计划管理、优化资源分配、强化团队沟通、设置关键里程碑、风险管理机制。其中,加强计划管理尤为关键,因为明确而详细的计划能提…...
内网穿透:轻松实现外网访问本地服务
异步通知的是需要通过外网的域名地址请求到的,由于我们还没有真正上线,那支付平台如何请求到我们本地服务的呢? 这里可以使用【内网穿透】技术来实现,通过【内网穿透软件】将内网与外网通过隧道打通,外网可以读取内网…...
缺乏进度跟踪机制,如何掌握项目状态?
要有效掌握项目状态,必须建立明确的进度跟踪机制、使用专业的项目管理工具、定期召开沟通会议、设立清晰的关键里程碑和实施风险监控。其中,建立明确的进度跟踪机制是关键,通过系统地追踪项目各个阶段的完成情况,及时发现问题并采…...
ES 调优帖:关于索引合并参数 index.merge.policy.deletePctAllowed 的取值优化
最近发现了 lucene 9.5 版本把 merge 策略的默认参数改了。 * GITHUB#11761: TieredMergePolicy now allowed a maximum allowable deletes percentage of down to 5%, and the defaultmaximum allowable deletes percentage is changed from 33% to 20%. (Marc DMello)也就是…...
基于 STM32 单片机的实验室多参数安全监测系统设计与实现
一、系统总体设计 本系统以 STM32F103C8T6 单片机为核心,集成温湿度监测、烟雾检测、气体泄漏报警、人体移动监测等功能模块,通过 OLED 显示屏实时显示数据,并支持 Wi-Fi 远程传输。系统可对实验室异常环境参数(如高温、烟雾、燃气泄漏)及非法入侵实时报警,保障实验室安…...
Spring Boot-Swagger离线文档(插件方式)
Swagger2Markup简介 Swagger2Markup是Github上的一个开源项目。该项目主要用来将Swagger自动生成的文档转换成几种流行的格式以便于静态部署和使用,比如:AsciiDoc、Markdown、Confluence。 项目主页:https://github.com/Swagger2Markup/swagg…...
Linux下Docker使用阿里云镜像加速器
在中国大陆环境中配置 Docker 使用阿里云镜像加速器,并确保通过 Clash 代理访问 Docker Hub 我这里用的Debian12。 步骤 1:获取阿里云镜像加速器地址 登录阿里云容器镜像服务控制台:(qinyang.wang) 网址:阿里云登录 - 欢迎登录阿…...
每日c/c++题 备战蓝桥杯(洛谷P1440 求m区间内的最小值 详解(单调队列优化))
洛谷P1440 求m区间最小值:单调队列优化详解(从暴力到O(n)的蜕变) tags: [算法, 数据结构, 滑动窗口, 洛谷, C] 引言 在处理序列数据的区间查询问题时,暴力枚举往往难以应对大规模数据。本文以洛谷P1440为切入点,深入…...
从代码学习深度学习 - 预训练word2vec PyTorch版
文章目录 前言辅助工具1. 绘图工具 (`utils_for_huitu.py`)2. 数据处理工具 (`utils_for_data.py`)3. 训练辅助工具 (`utils_for_train.py`)预训练 Word2Vec - 主流程1. 环境设置与数据加载2. 跳元模型 (Skip-gram Model)2.1. 嵌入层 (Embedding Layer)2.2. 定义前向传播3. 训练…...
OpenCV图像边缘检测
1.概念 图像边缘检测是计算机视觉和图像处理中的基础任务,用于识别图像中像素值发生剧烈变化的区域,这些区域通常对应物体的边界、纹理变化或噪声。 1.1原理 图像中的边缘通常表现为灰度值的突变(如从亮到暗或从暗到亮的急剧变化)…...
AI能源危机:人工智能发展与环境可持续性的矛盾与解决之道
AI对能源的渴求正在演变成一个巨大的挑战。这不仅仅关乎电费支出,其环境影响也十分严重,包括消耗宝贵的水资源、产生大量电子垃圾,以及增加温室气体排放。 随着AI模型变得越来越复杂并融入我们生活的更多领域,一个巨大的问题悬而…...
基于flask+vue的电影可视化与智能推荐系统
基于flaskvue爬虫的电影数据的智能推荐与可视化系统,能展示电影评分、评论情感分析等直观的数据可视化图表,还能通过协同过滤算法为用户提供个性化电影推荐,帮助用户发现更多感兴趣的电影作品,具体界面如图所示。 本系统主要技术架…...
初步认识HarmonyOS NEXT端云一体化开发
视频课程学习报名入口:HarmonyOS NEXT端云一体化开发 1、课程设计理念 本课程采用"四维能力成长模型"设计理念,通过“能看懂→能听懂→能上手→能实战”的渐进式学习路径,帮助零基础开发者实现从理论认知到商业级应用开发的跨越。该模型将学习过程划分为四个维度…...
基于单片机的车辆防盗系统设计与实现
标题:基于单片机的车辆防盗系统设计与实现 内容:1.摘要 随着汽车保有量的不断增加,车辆被盗问题日益严峻,车辆防盗成为人们关注的焦点。本研究的目的是设计并实现一种基于单片机的车辆防盗系统。采用单片机作为核心控制单元,结合传感器技术、…...
LSM Tree算法原理
LSM Tree(Log-Structured Merge Tree)是一种针对写密集型场景优化的数据结构,广泛应用于LevelDB、RocksDB等数据库引擎中。其核心原理如下: 1. 写入优化:顺序写代替随机写 内存缓冲(MemTable):写入操作首先被写入内存中的数据结构(如跳表或平衡树),…...
通过 API 获取 1688 平台店铺所有商品信息的完整流程
在电商运营和数据分析中,获取 1688 平台店铺的商品信息是一项重要的任务。1688 作为国内领先的 B2B 电商平台,提供了丰富的开放平台 API 接口,方便开发者获取店铺商品的详细信息。本文将详细介绍如何通过 Python 调用 1688 的 API 接口&#…...
Python代码加密与发布方案详解
更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 一、基础加密方案二、商业级加密方案三、高级混淆方案四、商业化发布方案五、反逆向技术六、最佳实践建议七、常见问题解决Python作为解释型语言,其源代码容易被查看和修改。本文将详细介绍多种Python代码保护方案,…...
Tractor S--二维转一维,然后最小生成树
P3073 [USACO13FEB] Tractor S - 洛谷 转成一维点图,然后最小生成树,最后的最大值就是最后一个点,记得记录维护连通块 同样的二维转一维---Cow Ski Area G---二维图转一维tarjan缩点-CSDN博客 #include<bits/stdc.h> using namespac…...
5月20日day31打卡
文件的规范拆分和写法 知识点回顾 规范的文件命名规范的文件夹管理机器学习项目的拆分编码格式和类型注解 作业:尝试针对之前的心脏病项目,准备拆分的项目文件,思考下哪些部分可以未来复用。 补充介绍: pyc文件的介绍 知识点回顾 …...
基于Spring Boot + Vue的教师工作量管理系统设计与实现
一、项目简介 随着高校信息化管理的发展,教师工作量管理成为教务系统中不可或缺的一部分。为此,我们设计并开发了一个基于 Spring Boot Vue 的教师工作量管理系统,系统结构清晰,功能完备,支持管理员和教师两个角色。…...
海康工业相机白平衡比选择器对应的值被重置后,如何恢复原成像
做项目的时候,有时候手抖,一不小心把一个成熟稳定的项目的相机配置,重置了,如何进行恢复呢,在不知道之前配置数据的情况下。 我在做项目的时候,为了让这个相机成像稳定一点,尤其是做颜色检测时…...
VMWare清理后,残留服务删除方案详解
VMWare清理后,残留服务删除方案详解 在虚拟化技术日益普及的今天,VMWare作为行业领先的虚拟化软件,广泛应用于企业和服务器的管理中。然而,由于其复杂的架构和深层次的系统集成,VMWare的卸载过程往往并不顺利。即使通…...
STM32定时器简单采集编码器脉冲
MCU:STM32H723ZGT6 编码器:(欧姆龙)E6B2-CWZ1X;1000P/R;8根线信号线分别为 A A- B B- Z Z- 以及5V和GND; A 脉冲输出 B 脉冲输出 Z 零点信号 当编码器旋转到零点时,Z信号会发出一个脉…...
第 4 章:网络与总线——CAN / Ethernet / USB-OTG
本章目标: 深入理解三种关键通信总线(CAN、Ethernet、USB-OTG)的协议架构、硬件接口与软件驱动 掌握 STM32(或同类 MCU)中各总线的寄存器配置、中断/DMA 驱动框架 通过实战案例,实现基于 CAN 总线的节点通信、基于 Ethernet 的 TCP/IP 通信,以及基于 USB-OTG 的虚拟串口…...
【python进阶知识】Day 31 文件的规范拆分和写法
知识点 规范的文件命名规范的文件夹管理机器学习项目的拆分编码格式和类型注解 机器学习流程 - 数据加载:从文件、数据库、API 等获取原始数据。 - 命名参考:load_data.py 、data_loader.py - 数据探索与可视化:了解数据特性,初期…...
leetcode 162. Find Peak Element
题目描述 如果nums[i-1]<nums[i]并且nums[i]>nums[i1],那么nums[i]就是峰值。除此情况之外,nums[i-1]和nums[i1]至少有一个大于nums[i],因为题目已经保证相邻的元素不相等。坚持向上坡方向走一定能达到一个峰值,如果往两边走…...
2025系统架构师---案例题(押题)
1. 微服务相关的概念: 微服务是一种架构风格,它将单体应用划分为一组小服务,服务之间相互协作,实现业务功能每个服务运行在独立的进程中,服务间采用轻量级的通信机制协作(通常是HTTP/JSON),每个服务围绕业务能力进行构建,并且能够通过自动化机制独立的部署。 微服务有…...
t检验详解:原理、类型与应用指南
t检验详解:原理、类型与应用指南 t检验(t-test)是一种用于比较两组数据均值是否存在显著差异的统计方法,适用于数据近似正态分布且满足方差齐性的场景。以下从核心原理、检验类型、实施步骤到实际应用进行系统解析。 一、t检验的…...
使用 OpenCV 实现万花筒效果
万花筒效果(Kaleidoscope Effect)是一种图像处理效果,通过对图像进行对称旋转或镜像处理,产生具有多重反射和对称的艺术效果。它常用于视频编辑、视觉艺术、游戏设计等领域,为图像添加富有创意和视觉冲击力的效果。 在…...
Rocketmq broker 是主从架构还是集群架构,可以故障自动转移吗
RocketMQ Broker的架构与故障转移机制 RocketMQ的Broker架构同时采用了主从架构和集群架构,并且支持故障自动转移。下面详细说明: 一、架构类型 1. 集群架构 RocketMQ天然支持分布式集群部署 一个RocketMQ集群包含多个Broker组(每组有主从) 不同Bro…...
MySQL中添加一个具有创建数据库权限的用户
要在MySQL中添加一个具有创建数据库权限的用户,可按以下步骤操作: 1. 登录MySQL 使用拥有足够权限(一般是root用户 )的账号登录到MySQL数据库。在命令行输入: mysql -u root -p然后输入对应的密码,即可进…...
Go语言使用通义灵码辅助开发 - AI编程助手提升效率
一、引言 Go 语言以其高效性能和简洁语法,成为构建微服务、分布式系统及高性能后端的首选。对于有其他语言编程经验的开发者和初学者,入门 Go 语言时,如何快速开发第一个程序是关键。传统方式如慢慢摸索、向老师请教或查找资料,效…...
演示:【WPF-WinCC3D】 3D工业组态监控平台源代码
一、目的:分享一个应用WPF 3D开发的3D工业组态监控平台源代码 二、功能介绍 WPF-WinCC3D是基于 WPF 3D研发的工业组态软件,提供将近200个预置工业模型(机械手臂、科幻零部件、熔炼生产线、机加生产线、管道等),支持组态…...
Oracle资源管理器
14.8资源管理器 14.8.1资源管理器的功能和控制种类 传统意义上,系统的资源分配是由 OS 来完成的,但是对于数据库资源,OS 分配资源会带来一些问题。以 Linux 为例,最为突出的一个问题是:Linux 的资源调度是基于进程的&…...
下载Ubuntu 64 位
学习目标: 下载 学习内容: 学习时间: 学习时间为学习时间 学习时间筋肉人为学习时间future 内容为笔记【有时比较抽象,有时比较过于详细,请宽恕。作者可能写的是仅个人笔记,筋肉人future】 学习产出&…...
ubuntu14.04/16.06 安装vscode(实测可以用)
地址:https://code.visualstudio.com/updates/v1_38 选择deb 这个版本还支持ubuntu14.04和16.06 sudo dpkg -i code_1.38.1-1568209190_amd64.deb sudo apt-get install -f安装成功,正常使用...
Linux命令大全
前言:工作中或多或少都会用到Linux服务器,我为大家分享一下常用命令 一丶文件与目录操作 命令作用示例ls列出目录内容ls -l(详细列表)cd切换目录cd /homepwd显示当前目录路径pwdmkdir创建目录mkdir -p dir1/dir2(递归…...
spark的缓存提升本质以及分区数量和task执行时间的先后
文章目录 示例代码缓存效果分析第1次 user.count第2次 user.count——这里解释了spark缓存提升的本质原因关于分区数量和task数量以及task的执行流程有多少个分区就有多少线程task并发执行不同分区数量对计算效率的提升 示例代码 import org.apache.spark.storage.StorageLeve…...
SQL次日留存率计算精讲:自连接与多字段去重的深度应用
一、问题拆解:理解次日留存率的计算逻辑 1.1 业务需求转换 题目:运营希望查看用户在某天刷题后第二天还会再来刷题的留存率。 关键分析点: 留存率 (第一天刷题且第二天再次刷题的用户数) / 第一天刷题的总用户数需…...
PostgreSQL初体验
目录 一:PostgreSQL 1.简介 3.优势 4.架构 5.应用场景 6.结论 二:安装PostgreSQL 1.编译安装 三:PostgreSQL架构 1.PG的逻辑结构 2.PG的物理结构 前言 在数据驱动的时代,掌握 PostgreSQL 这一全球顶尖的开源关系型数据…...
Vue 3.0 Transition 组件使用详解
Vue 3.0 的 Transition 组件提供了一种简单的方式来为元素或组件的进入/离开添加动画效果。下面是使用<script setup>语法糖的实现方式。 1. 基本用法 使用场景:当需要为元素的显示/隐藏添加简单的淡入淡出效果时,这是最基础的过渡实现方式。 &…...
深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第三篇:Verilog实现I2C Master核
第三篇:Verilog实现I2C Master核 副标题 :从零构建工业级I2C控制器——代码逐行解析与仿真实战 1. 架构设计 1.1 模块分层设计 三层架构 : 层级功能描述关键信号PHY层物理信号驱动与采样sda_oe, scl_oe控制层协议状态机与数据流控制state…...
通义灵码助力JavaScript开发:快速获取API与智能编码技巧
一、引言 JavaScript 拥有丰富的 API 生态,从浏览器的 Web API 到 Node.js 的环境生态,为开发者提供了强大的工具和库。然而,面对如此庞大的生态系统,开发者常常需要花费大量时间翻阅文档来查找和学习如何使用这些 API。通义灵码…...
ubuntu kubeasz 部署高可用k8s 集群
ubuntu kubeasz 部署高可用k8s 集群 测试环境主机列表软件清单kubeasz 部署高可用 kubernetes配置源配置host文件安装 ansible 并进行 ssh 免密登录:下载 kubeasz 项⽬及组件部署集群部署各组件开始安装修改 config 配置文件增加 master 节点增加 kube_node 节点登录dashboard…...
如何看待镍钯金PCB在当代工业制造中的地位和应用?
随着电子科技的飞速发展,电路板作为电子设备的核心组成部分,其制造材料和工艺也在不断进步。镍钯金(NiPdAu)电路板因其独特的物理和化学性质,在众多领域得到了广泛应用。本文将探讨镍钯金电路板的主要应用领域…...
Datawhale PyPOTS时间序列5月第4次笔记
端到端学习:使用一个模型直接接受包含缺失值的数据。 brits_classification.py 完整代码如下: # brits_classification.pyfrom benchpots.datasets import preprocess_physionet2012 from pypots.classification import BRITS from pypots.nn.function…...