- 博客(37)
- 收藏
- 关注
原创 机器学习基础——1.基本概念
本文介绍了机器学习的基本概念、分类和应用场景,并重点解析了Python主流机器学习库scikit-learn的核心功能。机器学习是通过算法让计算机从数据中学习并预测,主要分为监督学习、无监督学习、半监督学习和强化学习。scikit-learn库提供丰富的算法(分类、回归、聚类、降维等)和统一的API接口,支持完整机器学习流程(数据预处理、模型训练、评估优化)。文章通过代码示例展示了随机森林分类、线性回归、K均值聚类和PCA降维等典型应用场景。
2025-09-25 08:45:16
1227
原创 Python库3——Pandas
Pandas是Python中强大的数据分析库,提供Series和DataFrame两种核心数据结构。本文详细介绍了Pandas的主要功能:1)数据操作(清洗、转换、排序、筛选、拼接);2)统计运算(计数、求和、均值、分位数等);3)数据分组与聚合(groupby和agg方法);4)数据可视化(支持多种图表类型);5)文件读写(CSV/Excel格式)。通过丰富的示例代码,展示了如何创建、访问和处理数据,包括数据清洗(处理缺失值、去重)、转换(替换、自定义函数)、排序(按值/索引)等核心操作。Pandas能与
2025-09-22 16:30:32
1244
原创 数据结构9——树
本文介绍了树的基本概念和三种遍历方式(前序、中序、后序)的实现代码。树是一种非线性的数据结构,具有根节点和子树的层次结构特征。文章分别提供了C语言和Python两种语言的实现示例:C语言部分包括树的创建、三种递归遍历方法及层次遍历;Python部分则通过TreeNode类展示了面向对象的实现方式,包含了树的创建和前中后序遍历的递归实现。两种语言的代码都通过具体示例演示了遍历过程,帮助读者理解树结构的遍历算法。
2025-09-17 19:36:31
2252
原创 数据结构8——双向链表
本文介绍了双向链表和双向循环链表的实现方法,并提供了Python和C语言的完整代码示例。文章首先讲解了双向链表的基本概念,包括节点结构(包含prior和next指针)和初始化方法。随后详细说明了双向链表的插入(分为尾插和中间插入)、删除操作(尾删和中间删除)的实现逻辑,并配有图示说明。在C语言部分,文章展示了如何创建空链表、插入删除节点、遍历链表等核心功能。最后,文章通过约瑟夫问题演示了双向循环链表的应用,提供了完整的Python和C语言解决方案。全文通过代码实例帮助读者理解双向链表的工作原理和实现方法。
2025-09-13 13:44:38
1032
原创 数据结构7——链式队列
链式队列数据结构详解 本文介绍了链式队列的基本概念和实现方法,内容包括: 链式队列结构:使用有头单向链表实现,维护头尾指针分别用于出队和入队操作 核心操作: 入队(尾插):在链表尾部插入新节点 出队(头删):删除链表头节点 判空:头尾指针是否相同 代码实现:提供了C语言和Python的完整实现示例 拓展思考:提出用两个栈实现队列功能的思路 文中详细讲解了链式队列的存储结构、操作原理,并通过图示辅助理解,最后给出了两种编程语言的完整实现代码。
2025-09-07 09:37:01
1176
原创 太阳耀斑线性回归实验名词解释
摘要:该研究基于太阳活动区域的10个特征参数预测未来24小时内C、M、X级耀斑的发生数量。主要输入特征包括修改后的苏黎世级(A-H)、最大光斑尺寸(X/S/R等级)、耀斑亮度分布类型(X/O/I/C)、活动区演变状态、历史耀斑活动及面积等。输出目标为三类耀斑的预测数量:C级(普通)、M级(中等)和X级(强烈)。其中,X级耀斑的峰值软X射线通量≥10⁻⁴W/m²,为最强等级。研究通过分析活动区的形态、历史复杂度和近期活动等特征,建立太阳耀斑预测模型。
2025-09-06 09:14:32
1199
原创 数据结构6线性表——循环队列
本文介绍了队列的基本概念和实现方法,重点讲解了循环队列的原理和编程实现。队列是一种先进先出(FIFO)的线性表,包括顺序队列和链式队列两种形式。文章详细阐述了循环队列的数据结构特点,解释了如何通过头尾指针和取余运算解决"假溢出"问题,并给出了判断队列空/满的条件。同时提供了C语言和Python的完整实现代码,包括创建队列、入队、出队、判空、判满等核心操作的方法。最后还提出了两种不浪费队列空间的改进方案:使用标志位或size变量来区分队空和队满状态。
2025-09-02 10:38:57
1457
原创 Python库2——Matplotlib2
Matplotlib 中 Figure 对象使用指南 摘要: 本文详细介绍了 Matplotlib 中 Figure 对象的创建和使用方法。Figure 对象代表整个图形窗口,包含子图(Axes)、标题、图例等元素。文章阐述了两种创建方式:隐式创建(自动生成)和显式创建(使用 plt.figure() 或 Figure 类)。重点讲解了 Figure 类的核心方法,包括 add_subplot(添加子图)、suptitle(设置总标题)、add_axes(自定义子图位置)、subplots_adjust(调
2025-08-30 16:44:19
1463
原创 Python库2——Matplotlib1
Matplotlib是Python强大的绘图库,Pyplot模块提供类似MATLAB的绘图API。摘要介绍了6种常用图表绘制方法:1)线图plot()函数支持多线条绘制,可自定义颜色、线型和标记;2)散点图scatter()支持点大小、颜色映射;3)柱状图bar()/barh()实现横向/纵向展示;4)饼图pie()支持扇形偏移、标签和百分比显示;5)直方图hist()用于数据分布分析;6)等高线图contour()/contourf()分别绘制轮廓和填充。还讲解了子图subplot()、图例legend(
2025-08-27 08:37:36
1277
原创 Python库1——NumPy2
本文继续介绍NumPy数组的运算与操作,主要包括:1)数组的算术运算(加减乘除、开根号等);2)广播机制及其规则;3)矩阵乘法和逻辑运算;4)统计运算(求和、均值、方差等);5)常用数学函数(三角、指数、对数函数);6)排序函数;7)数组的增删改查操作(插入、删除、连接、分割等);8)where条件查询函数。文章通过示例代码详细演示了各种运算和操作的具体实现方法,并介绍了相关函数的参数说明和使用技巧。
2025-08-23 09:32:18
1444
原创 数据结构5线性标——链式栈
本文介绍了链式栈的实现方法,包括C语言和Python两种版本。链式栈采用链表结构实现,具有后进先出的特点,相比顺序栈更灵活但效率稍低。文章详细讲解了链式栈的6个核心操作:创建空栈、入栈、判空、出栈、求长度和获取栈顶元素,并提供了完整的可执行代码。C语言实现中重点说明了二级指针的使用原理,Python实现则利用了类的特性。两种语言版本都遵循相同的逻辑:将链表头部作为栈顶,通过头插法实现入栈,头删法实现出栈,确保操作的高效性。
2025-08-21 20:09:17
1268
原创 数据结构4线性表——顺序栈
本文介绍了顺序栈的数据结构及其C语言和Python实现。栈是一种先进后出的线性表,只能在栈顶进行插入和删除操作。文章详细讲解了顺序栈的特点(逻辑结构为线性、物理结构为顺序)和基本操作(创建、入栈、出栈、判空、判满)。在代码实现部分,分别给出了C语言和Python的完整示例代码,包括创建空栈、判满、入栈、判空、出栈等核心操作,并解释了每个函数的功能和实现原理。代码示例展示了如何使用栈结构,并演示了栈的先进后出特性。
2025-08-17 13:24:40
1326
原创 数据结构3线性表——单链表(Python)
本文介绍了使用Python实现带头节点的单向链表操作,主要包括节点构建、链表遍历和基本操作函数。详细说明了链表节点的定义方式(包含数据域和指针域),并提供了无头和带头链表的遍历方法。重点实现了11个链表操作函数:插入、删除(按位置/值)、查找、反转、清空等,每个函数都包含容错判断和详细注释。代码采用面向对象设计,通过Node类和LinkedList类封装链表操作,展示了带头节点链表的特点和操作要点,如头节点的特殊处理、指针操作顺序等。最后给出了完整的可执行代码示例,演示了各函数的调用效果。
2025-08-12 19:58:29
1505
原创 数据结构3线性表——单链表(C)
摘要: 本文详细讲解了单链表的数据结构及其C语言实现。单链表由节点(Node)组成,每个节点包含数据域和指向下一节点的指针域。文章区分了带头节点和不带头节点的链表,重点介绍了带头节点链表的操作实现,包括创建空链表、计算长度、插入/删除节点、遍历、查找、修改、清空及转置等核心功能。通过结构体定义节点,结合动态内存分配(malloc),提供了完整的C语言代码示例,展示了链表的增删改查操作。此外,还通过转置算法演示了链表的逆置过程,帮助读者深入理解链式存储结构的特点和操作逻辑。
2025-08-11 18:35:52
1288
原创 数据结构2线性表——顺序表
线性表是一种基本的数据结构,用于存储具有线性关系的数据元素。摘要介绍了顺序表(数组/列表实现)的基本概念和操作实现。顺序表通过连续的存储单元存储数据,包含插入、删除、修改、查找等核心操作。文中分别用C语言和Python实现了顺序表,展示了创建空表、判满/空、清空、遍历以及增删改查等功能的代码实现。关键点包括:使用last变量跟踪有效元素位置,插入删除时的元素移动操作,以及各种边界条件的容错处理。代码示例完整展示了顺序表从定义到具体操作的实现过程,为理解线性表的顺序存储提供了实践参考。
2025-08-10 11:46:17
1055
原创 Python库1——NumPy1
NumPy(Numerical Python)是一个开源的Python科学计算库,它提供了多维数组对象(ndarray)以及大量的数学函数库支持多维数组操作:NumPy提供了强大的n维数组对象ndarray,可进行高效的数据处理丰富的函数:NumPy内置了大量数学、统计和线性代数函数。高性能:NumPy底层采用C语言编写,相比于python来说运算速度快,性能优越具有广播功能:可以允许不同形状的数组进行算术运算【练习】不借助numpy库,实现两个列表的元素相加。
2025-08-07 09:14:51
927
原创 数据结构1——基本概念
本文介绍了数据结构与算法的核心概念。数据结构定义了数据的逻辑结构(集合、线性、树形、图形)、存储结构(顺序、链式、索引、散列)和操作方法。算法是解决问题的有限指令序列,具有有穷性、确切性等特征,可通过自然语言、流程图、伪代码等方式描述。评估算法主要考察正确性、可读性、健壮性和效率,其中时间复杂度用大O表示法估算,重点关注最坏情况下的执行次数。文章通过数组遍历、冒泡排序等代码示例,演示了时间复杂度的计算方法。数据结构与算法是程序设计的核心,二者结合才能构建高效可靠的软件系统。
2025-08-06 18:39:38
1344
原创 C语言基础12——结构体2
摘要:本文介绍了C语言中结构体、指针、枚举和共用体的相关概念及使用。重点讲解了结构体大小的字节对齐原则,包括对齐规则和优化方法。详细说明了结构体指针的定义、赋值和访问方式,并通过示例代码演示了结构体数组排序。此外,还介绍了枚举类型的定义及应用场景,以及共用体的特性及其在大小端测试中的实际应用。文章最后提供了结构体数组排序的参考代码实现。
2025-08-03 21:50:41
1457
原创 C语言基础11——结构体1
摘要:本文介绍了C语言中结构体的基本概念和使用方法。结构体是用户自定义的数据类型,可包含多个不同类型的成员变量。主要内容包括:1)结构体的定义格式和三种变量定义方式;2)结构体变量的三种赋值方法(初始化、单独赋值、点等法);3)结构体成员的访问方式;4)使用typedef进行类型重定义;5)结构体数组的定义、赋值和输入输出操作,并提供了相关示例代码。
2025-07-30 20:18:35
1375
原创 C语言基础10——函数
本文主要介绍了C语言中函数和动态内存管理的相关内容。在函数部分,讲解了函数的定义、三要素(功能、参数、返回值)、声明与调用方式,以及值传递、地址传递和数组传递三种参数传递方式。动态内存管理部分重点介绍了malloc和free函数的使用方法,以及常见的动态内存错误和注意事项。此外,还介绍了常用的字符串处理函数(如strcpy、strlen、strcat、strcmp等)的使用方法。文章最后提供了两个思考题的参考答案,演示了如何正确处理动态内存分配和指针传递的问题。这些知识点是C语言编程中的基础内容,对理解内存
2025-07-26 13:37:13
1376
原创 C语言基础9——指针与数组
本文主要介绍了指针与数组的关系及访问方式。对于一维数组,可通过数组名直接访问元素,或通过指针变量间接访问。二维数组访问需理解行地址与列地址的转换。文章详细讲解了指针运算规则、数组指针和指针数组的定义与应用,并通过实例演示了如何通过指针操作数组元素。同时提供了三个练习题目及其解析,帮助理解指针与数组的复杂操作。最后还简要介绍了命令行参数中指针数组的使用。全文重点在于阐明指针与数组的内在联系及访问机制。
2025-07-23 13:40:45
1548
原创 C语言基础8——指针
本文主要介绍了C语言中指针的基础知识与应用。首先阐述了指针的优点,包括提升程序效率、支持复杂数据结构、实现动态内存分配等。然后详细讲解了指针的基本概念、定义格式和操作符(&和*),并强调了指针初始化的重要性以避免野指针问题。 文章进一步介绍了指针的运算操作,包括算术运算(地址偏移)和关系运算(地址比较),以及指针大小在不同系统环境下的差异。同时讲解了const和void两种指针修饰方式的使用场景和注意事项。 最后,文章讨论了大小端存储模式的区别,介绍了二级指针的概念和使用方法,并提供了两个指针应用练
2025-07-21 11:42:18
1352
原创 C语言基础7——两种简单排序算法和二维数组
本文介绍了两种基础排序算法(冒泡排序和选择排序)与二维数组的基本操作。在排序部分详细说明了冒泡排序的实现过程(通过双重循环比较相邻元素并交换)和选择排序的工作原理(通过n-1轮比较找出最小值进行交换)。二维数组部分则涵盖了定义方式、元素访问、内存分配特点(列数不可省略)以及初始化方法,特别强调了arr与arr[0]的地址差异。最后提供了两个练习的参考答案:10个数的降序冒泡排序实现和3×4矩阵最大值及其位置的查找。文章通过具体代码示例和内存分配图示,清晰展示了相关概念的实际应用。
2025-07-19 08:57:22
2251
原创 C语言基础6——数组
C语言数组基础摘要 一维数组是若干有序变量的集合,通过下标访问元素(从0开始)。定义时需指定类型和大小(如int arr[5]),数组名代表首元素地址。初始化分为:全部初始化({1,2,3})、部分初始化(未赋值为0)和未初始化(随机值)。可通过循环遍历数组,注意防止越界。sizeof计算数组总字节数,strlen求字符串实际长度(不含\0)。字符数组可用scanf("%s")或gets输入(后者不检查越界),输出用printf或puts。清零函数bzero和memset需引入头文件。练
2025-07-17 14:56:21
1309
原创 C语言基础5——控制语句2(循环)
本文介绍了C语言中的循环控制语句,主要包括for循环、while循环和do-while循环三种结构。详细讲解了for循环的基本语法、嵌套结构及变形形式,并通过求阶乘、打印九九乘法表等示例演示其应用。同时阐述了while循环的执行流程和注意事项,比较了while与do-while的区别。此外,还介绍了循环控制语句break和continue的使用方法,以及如何实现死循环。最后提供了多个编程练习题及其参考答案,包括水仙花数判断、图案打印等实例,帮助读者掌握循环结构的实际应用技巧。
2025-07-14 18:36:58
2302
原创 C语言基础4——控制语句1(分支)
本文介绍了C语言中的控制语句,重点讲解了分支语句if和switch的用法。if语句包括基本结构、分层结构和嵌套结构,通过多个示例展示了不同场景下的应用。switch语句部分说明了其基本结构和执行顺序,并通过成绩等级判断的案例演示了实际用法。文章还提供了6个练习题及其解答,涵盖两数相减、大小写转换、日期计算等常见编程问题。最后总结了两种计算一年中第几天的方法,并强调了编程中的注意事项。这些内容适合初学者掌握C语言的基本控制结构。
2025-07-12 17:13:28
1469
原创 C语言基础3——输入输出
本文介绍了C语言中输入输出函数的三要素(功能、参数、返回值)及具体应用。主要内容包括:1. 字符输入输出函数putchar()和getchar()的使用方法及注意事项,如处理回车字符问题;2. 格式化输入输出函数printf()和scanf()的格式控制、修饰符用法及常见问题;3. 特别讲解了scanf()函数输入字符时的回车问题及三种解决方案(getchar()、%*c和空格回收);4. 提供了两个编程练习及参考答案:大写字母转换和水分子数量计算。文章详细说明了各种输入输出函数的使用技巧和常见错误处理方式
2025-07-09 10:51:01
1308
原创 C语言基础2——运算符和表达式
本文介绍了C语言中的运算符与表达式。主要内容包括:1. 表达式是由运算符、运算量和标点符号组成的计算序列。2. 运算符分类:算术运算符(+ - * / % ++ --)、关系运算符(> < == !=等)、逻辑运算符(&& || !)、位运算符(& | ^ ~ << >>)、赋值运算符(= +=等)及其他运算符(逗号、三目、sizeof)。3. 重点讲解了自增/自减运算符的前后置区别、位运算操作、逻辑运算符的短路特性,并通过示例演示了运算符优先级和
2025-07-08 20:20:53
1288
原创 C语言基础1
摘要:本文介绍了计算机数据表示和进制转换的基本概念。数值数据包括二进制、八进制、十进制和十六进制的相互转换方法,以及非数值数据的ASCII编码表示。同时还讲解了C语言中的词法符号(关键字、标识符、运算符等)、变量和常量的定义与使用,包括数据类型、存储类型、局部/全局变量区别以及原码/补码转换等内容。最后提供了进制转换和标识符识别的练习题,帮助读者掌握计算机数据表示的基本原理和C语言基础语法。
2025-07-07 18:49:39
1079
原创 在Linux操作系统中写一段C语言代码
本文介绍了C语言编程流程和GCC编译器的使用。主要内容包括:1)C程序编写流程:创建.c文件、编写代码、编译(gcc命令)和执行程序;2)GCC编译器的四个阶段:预处理(生成.i文件)、编译(生成.s汇编文件)、汇编(生成.o目标文件)和链接(生成可执行文件)。文章重点说明了各阶段使用的gcc命令选项(-E、-S、-c)及其作用,以及如何通过-o选项指定输出文件名。这些步骤涵盖了从源代码到可执行程序的完整编译过程。
2025-07-04 00:10:49
489
原创 Linux基本认识
摘要:本文介绍了Linux操作系统的基础知识与常用操作。首先对比了Linux与Windows在开源性、权限管理、软件生态等方面的差异,突出Linux的安全性和定制性优势。然后详细讲解了Linux终端操作,包括目录切换(cd)、文件管理(ls/touch/mkdir/rm/cp/mv)、权限设置(chmod)等基本命令。最后介绍了vi文本编辑器的三种模式(输入、命令、底行)及其操作技巧,如复制/粘贴、搜索替换、分屏等。文章适合Linux初学者快速掌握基础操作,建议在Ubuntu虚拟机环境中实践练习。
2025-07-03 23:38:51
768
2
原创 python面向对象
面向对象编程语言经历了从机器语言到高级语言的发展历程。通过黑塔女士维护空间站的例子,生动阐释了面向对象与面向过程的本质区别:面向对象强调任务分配与协作,而面向过程注重逐步实现。文章详细解析了Python类机制的核心概念,包括类与对象的关系、继承、方法重写和多态等特性。通过BOT机器人、猫狗类等实例演示了类的定义、实例化、属性访问和内置方法的应用。特别介绍了鸭子类型体现的多态思想,即只要对象具有相同行为即可互换使用。面向对象编程通过封装、继承和多态三大特性,显著提升了代码复用性和灵活性。
2025-07-02 19:24:36
1087
原创 python函数
本文介绍了Python函数的基本概念与分类。函数是将功能代码封装以便重复调用的结构,包含参数、功能和返回值三要素。函数分为内置函数(如len())和自定义函数(用def定义)。参数传递方式包括位置传参、关键字传参、默认传参等,还介绍了可变/不可变数据类型在传参时的区别。文章通过"黑塔女士"示例演示了函数定义、调用和返回值处理,并解释了局部变量与全局变量的作用域范围。最后说明了不定长参数(*args)和关键字不定长参数(**kwargs)的使用方法。
2025-06-30 23:03:51
959
原创 python数据类型2
Python集合数据类型总结:集合是由{}包裹的无序不重复元素组成,分为可变集合(set)和不可变集合(frozenset)。可变集合可通过add()/update()添加元素,remove()/discard()/pop()删除元素,支持in查询和集合运算(交集、并集等)。字典是由键值对组成的无序可修改数据类型,通过{}或dict.fromkeys()创建,支持增删改查等操作,常用函数包括keys()/values()/items()等。键必须是不可变类型(数字/字符串/元组),值可为任意类型。集合和字典
2025-06-28 18:06:22
481
原创 python数据类型1
Python序列数据类型摘要 本文详细介绍了Python中的序列数据类型,包括数字型(整型、浮点型、布尔型、复数型)、字符串、列表和元组。 数字型:整型(int)无大小限制,浮点型(float)存在精度问题,布尔型(bool)是特殊的整型(True=1, False=0),复数型(complex)包含实部和虚部。 字符串:不可修改,支持下标和切片访问,提供丰富的字符串操作函数(find/index、upper/lower、split/join等)。 列表:可修改的有序集合,支持增删改查操作(append/r
2025-06-28 18:03:46
872
原创 python分支语句
本文介绍了Python中的分支和循环结构。主要内容包括:1)if分支的基本结构、分层结构和嵌套结构;2)while循环和for循环的使用方法,包括range函数和循环嵌套;3)循环控制语句break、continue和pass的作用;4)提供了多个编程示例,如成绩等级判断、九九乘法表、箱子形状判断等;5)包含两道练习题及参考代码。文章详细讲解了Python流程控制的基本语法和应用场景,适合初学者学习编程基础逻辑。
2025-06-28 17:59:10
893
原创 python基本知识
本文介绍了Python 3.8.0环境下的基础编程知识,包括: 注释使用(单行#、多行""") PyCharm中的波浪线提示(红、黄、绿线分别对应语法错误、格式不规范和拼写错误) 输出语句(print、格式化输出和f-string) 输入语句(input)及类型转换 变量定义、数据类型和内存地址 标识符命名规则和关键字 进制转换方法(二/八/十/十六进制) 运算符详解(算术、赋值、位、逻辑运算符) 运算符优先级说明 附带练习题及解析,如变量交换、位运算等基础编程问题
2025-06-28 17:51:40
739
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅