- 博客(640)
- 资源 (20)
- 问答 (1)
- 收藏
- 关注
原创 典型的空间换时间案例OSMapTbl与OSUnMapTbl
在μC/OS-II实时操作系统中,OSMapTbl和OSUnMapTbl是两个关键的预计算查找表,用于优化任务优先级调度。OSMapTbl是一个位映射表,用于将优先级编号转换为位掩码,以便快速设置或清除OSRdyGrp和OSRdyTbl中的特定位。其表大小为8,元素值为0x01至0x80,对应8个可能的位位置。OSUnMapTbl是一个位反向映射表,用于从字节数据中快速定位最低有效位(LSB)的索引,以查找最高优先级任务。其表大小为256,覆盖所有8位二进制组合。这两种表通过查表法实现O(1)的时间复杂度,
2025-05-17 10:20:37
257
原创 生成器(generator)
生成器通过惰性计算和只存储当前状态的特性,能够显著节约内存,特别适用于处理大数据集和无限序列。这种特性使得生成器在数据处理和流式计算中非常有用。
2025-04-26 10:26:20
200
原创 异步编程与多线程的本质区别
异步编程的本质是单线程内的协作式任务调度,通过事件循环和协程机制实现高并发I/O处理,与多线程的抢占式并行执行存在根本性差异35。两者的选择需根据任务类型(I/O密集型 vs CPU密集型)和运行时环境综合判断26。# 需要安装:pip install aiohttp"""异步获取单个网页内容""""""并发获取多个网页"""# 使用gather并发执行所有任务urls = [] * 5 # 重复5次,共20个请求。
2025-04-13 11:15:11
299
原创 Python 装饰器(Decorator)详解
实现逻辑解耦与复用,是 Python 灵活性和表达力的重要体现。掌握其核心用法后,可显著提升代码的可维护性和扩展性。
2025-04-10 08:31:04
441
原创 python中的语音操作
pip install pyaudio # 用于实时麦克风录音:ml-citation{ref="2,4" data="citationList"}pip install vosk # 核心库安装:ml-citation{ref="2,4" data="citationList"}下载预训练模型,官方模型库:Vosk Models,中文推荐模型:vosk-model-cn-0.22(适用于中文场景)。朗读需要安装:pip install pyttsx3。语音操作主要包括两个:朗读和语音识别。
2025-03-28 08:31:40
385
原创 Flask多参数模版使用及其服务器waitress
约定好参数名字,单个名字可以直接使用;多参数使用字典传递;把建好的html文件放到templates目录里面;需要建立目录templates;hello.html内容。
2025-03-17 17:05:13
280
原创 Flask进行WEB开发
Flask 允许你定义路由,使得当用户访问特定 URL 时,Flask 会调用对应的视图函数来处理请求。Flask 允许你定义路由,这样当特定的 URL 被访问时,就会调用相应的函数。:蓝图是 Flask 中的一个组织代码的方式,它允许你将相关的视图函数、模板和静态文件组织在一起,并且可以在多个应用中重用。蓝图是 Flask 中的组织代码的方式。它允许你将相关的视图函数、模板和静态文件组织在一起,并且可以在多个应用中重用。Flask 允许你定义错误处理函数,当特定的错误发生时,这些函数会被调用。
2025-03-17 14:56:00
717
原创 PyInstaller打包工具的使用
PyInstaller 是一个将 Python 程序打包成独立执行文件的工具,常用于将 Python 脚本打包为可执行文件。默认情况下,PyInstaller 会生成一个文件夹,其中包含可执行文件和相关的依赖文件。使用此选项后,所有文件会被打包成一个文件。.spec 文件包含了打包过程的配置信息,通常你可以修改 .spec 文件来定制 PyInstaller 的行为。PyInstaller 会生成一个 .spec 文件,它记录了打包时的配置,可以修改该文件来定制打包行为。指定生成的可执行文件所在的目录。
2024-11-18 14:10:06
3881
原创 双端队列deque
deque(双端队列)是collections库中的一个类,它是一个、可以在两端进行高效插入和删除操作的数据结构。deque类实现了类似列表的功能,但在处理频繁的首尾插入和删除时更加高效。
2024-11-01 10:41:53
477
原创 Counter对象的使用样例
Counter是一个用于跟踪值出现次数的有序集合。它可以接收一个可迭代对象作为参数,并生成一个字典,其中包含每个元素作为键,其计数作为值。
2024-11-01 10:18:27
388
原创 groupby函数的使用
itertools.groupby 是 Python 标准库 itertools 模块中的一个强大工具,它能够对可迭代对象中的元素进行分组。不同于数据库查询语言中的 GROUP BY 语句 ,groupby 并不会自动对数据进行排序,因此在使用前通常需要先对数据进行预排序,以保证相同元素连续出现,这样才能正确地进行分组。{'孙': ['孙文'], '张': ['张飞'], '李': ['李晓红'], '王': ['王名', '王芳'], '章': ['章程']}2 把姓名字符串按姓氏分组。
2024-10-29 15:27:29
585
原创 高阶函数(Higher-Order Function)
reduce() 函数会对参数序列中元素进行累积。函数将一个两元操作函数作用在序列[x1, x2, x3, ...]上,并将其结果并为一个单一返回值,例如用于求和或求积。高阶函数在 Python 中非常强大和灵活,它们允许你将函数作为参数传递给其他函数,或者从函数中返回函数。虽然 lambda 表达式本身不是一个高阶函数,但它经常与高阶函数一起使用,提供简洁的函数定义。map() 函数接受一个函数和一个可迭代对象(如列表或元组)作为输入,将传入的函数依次作用到序列的每个元素上,并返回一个新的迭代器。
2024-09-25 10:02:21
566
1
原创 max与min函数的使用
max与min都有一个key关键字,可以进行更复杂的操作。比如:返回长度最长的字符串序列等。max函数是返回序列中的最大值;min函数是返回序列中的最小值;
2024-09-18 14:17:41
312
原创 python中的排序函数sorted
在python中对列表进行排序是使用很频繁的操作,一般采用sorted函数或自带的成员函数sort就可以搞定。但是,sorted函数本身功能非常强大,可以对字符串长度、字典键值进行排序。使用下面的代码,可以更进一步的学习掌握。
2024-09-18 11:10:37
449
原创 classmethod的使用
python中存在三种方法,分别为常规方法(定义中传入self)、@classmethod修饰的类方法、@staticmethod修饰的静态方法。一常规方法定义时需要传入self参数,与类的实例绑定。也就是说调用时需要先实例化类classA为实例A,然后该实例A才拥有方法,通过A.f()的方式来调用。不能直接用类classA.f()的方式来调用。二用@classmethod修饰的方法需要传入cls参数(代表当前类),表示该方法与类绑定(不是实例)
2024-09-03 10:10:33
653
原创 常量池和对象池
需要注意的是,对于一些简单的对象,如整数、浮点数、字符串等等,如果它们的值相同,它们的地址也可能相同,这是因为Python的常量池机制会共享一些简单对象的内存地址。例如,当程序创建一个长度为1的字符串对象s时,Python的解释器会先检查对象池中是否已经存在一个值为s的字符串对象,如果存在,则直接返回该对象;例如,如果程序需要使用多个整数1来做计算,那么Python只需要在常量池中检查是否存在整数1的对象,如果已经存在,则直接引用这个对象,而不是创建新的整数1对象。这可以减少内存的使用,并加速程序的执行。
2024-08-25 15:29:27
493
原创 sklearn中的线性回归
w 被统称为 模型的 参数,其中 w0 被称为截距(intercept),w1~wn 被称为 回归系数(regression coefficient)。这个表达式和 y=az+b 是同样的性质。其中 y 是目标变量,也就是 标签。xi1~xin 是样本 i 上的特征 不同特征。
2024-08-24 16:35:38
409
原创 Threejs中的光照使用
/ 光线照射的目标点。在 Three.js 中,光照模型是创建真实感和氛围感三维场景的关键要素之一。需要根据自己的实际需求进行调节,直到满意为止。:像一个发光的点,向各个方向均匀发光。:模拟无限远处的光源,光线平行。:具有方向性和锥形照射范围。
2024-08-21 16:37:05
457
原创 pyinstaller打包工具
打包过程中,PyInstaller会自动检测并分析Python代码及其导入的模块,将它们打包到一个可执行文件中,并生成额外的支持文件和目录。PyInstaller支持多个操作系统平台(如Windows、Linux、Mac OS X等),可以根据不同的平台选择合适的打包方式和选项。总之,PyInstaller是一个强大的工具,可以方便地将Python程序打包成可执行文件,以便于在没有安装Python的环境中运行或作为一个独立文件方便传递和管理。选项指定生成的可执行文件的输出目录,使用。
2024-04-29 10:35:54
314
原创 去重并保持原来的顺序OrderedDict
模块中的这些数据类型可以帮助你更高效地处理数据,并提供更简洁、更易于理解的代码。: 这是一个字典子类,它提供了一个工厂函数,用于为字典提供默认值。当访问字典中不存在的键时,它会调用工厂函数来提供默认值。利用python自带的库collections中的OrderedDict可以顺利实现去重并保留顺序。d[0]不存在,如果使用普通字典则会报错,使用默认值字典则不会报错。python中集合set可以去重,但是并不保留顺序。另外,collections还有默认值字典可以使用。完美实现去重并保留顺序。
2024-04-23 10:14:58
611
原创 数据集中的交集差集并集操作
这里的最大缺点是必须为目的集合留下足够的空间,最后再删除掉,比python来还是弱了很多,谁叫C++是底层语言呢?尽量使用STL自带函数进行操作,可读性更强,缺点是容易忘记。
2024-04-23 09:34:34
239
原创 ThreeJS部件装配
子物体首先几何中心归于原点,测量其尺寸,得其装配点1的数据数据(0.02,-0.08,-0.2328)。父物体首先几何中心归于原点,然后测量出装配点1,其数据为(0.15,0.00,0.168);//子物体位置为其装配点的数据的相反数。旋转时,需要区分所绕的数轴,下图为绕。的位置,其数据为父物体安装点数据。4 三个点计算圆心的代码。
2024-01-22 21:10:28
701
原创 获取未来天气样例(爬虫样例)
利用python的爬虫功能进行信息爬取,关键在于源码分析,代码相对简单。访问网站,按下F12,进行元素查找分析。
2023-10-08 15:41:03
786
2
原创 DataFrame中的isin查询使用
df.sort_values(by=['列标签'],ascending=True) 将DataFrame按照指定列标签按升序进行排序。df.nsmallest(n,columns=‘列标签’) 按照columns指定的列进行升序,并取前n行数据。df.groupby(列标签,...).aggregate({'列标签':'聚合',...})df.groupby(列标签,...).agg({'列标签':'聚合',...})filt_1 = df['name'].isin(['云韵','美杜莎'])
2023-09-15 11:13:18
1303
原创 numpy高级函数之where和extract函数
(array([0, 2, 6], dtype=int64),) #返回对象为一个元组,n2[0]是满足条件的索引,numpy.extract() 函数根据某个条件从数组中抽取元素,返回满条件的元素。1 numpy.where() 函数返回输入数组中满足给定条件的元素的索引。[17 15 19 15 12 10 16 11 15 13] #原始数组。#逻辑判断操作:大于15的替换为"big",否则替换为“small”[1 6 9]#索引为1 6 9的元素满足条件。
2023-08-26 15:43:30
314
原创 series的数据对齐功能
访问 Series 里的数据的方式,和 Python 里访问列表和字典元素的方式类似,也是使用中括号加数据标签的方式来获取里面的数据。我们还可以直接使用字典同时创建带有自定义数据标签的数据,pandas 会自动把字典的键作为数据标签,字典的值作为相对应的数据。方法对应的是加法,数学中的四则运算在 pandas 中都有一一对应的方法,它们的用法都是类似的。假设你开了个小卖部,每天统计了一些零食的销量,你想看一下前两天的总销量如何。上面的数据中,只有辣条和面包这两个数据标签是相同的,剩下的数据标签各不相同。
2023-08-21 09:39:36
334
原创 STL空间配置器入门
因为真正可以在程序运行中就归还系统的只有自由链表中的未使用值,但是他们并不一定是连续的(用户申请空间,释放空间顺序的不可控制性),所以想要在合适时间(eg一级配置器的handler中释放,或者设置各阀值,分配空间量到达时处理),就必须保证释放的空间要是连续的。释放时,仅释放连续的大块。各自管理大小分别为8,16,24,32,40,48,56,64,72,80,88,96,104, 112,120,128 字节的小额区块。所以,就使用Trace进行跟踪,打印数据流向,逻辑走向,文件,函数,方法,行位置。
2023-08-05 09:48:27
237
原创 DataFrame的替换操作
==字符串操作===========================================================数据操作=======================================================# 将 pct_change_wly_data 这列乘以100 保留两位小数 成为百分比。3 把“SZ”“SH”替换为小写"sz"“sh”2 替换操作(把“上海”替换为“深圳”)1 行与列操作和条件查询。# 删除包含缺失值的行。1 保留三位小数。
2023-07-16 10:52:13
1733
1
python数据处理样例程序
2022-10-27
SocketTransferFile.zip
2019-05-10
你搞过什么有实际意义的算法?
2016-07-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人