NumpyConcatenate加速
Error 多次循环进行 Numpy Concentrate 操作后,当原始数组变得过大的时,单步处理时间会逐渐变长,处理大量数据的时候时间成本极高。 解决思路 这里简单的讲一下问题的定位过程,通过装饰器 Check 每个函数的执行时间,重点关注执行时长逐渐变长的部分。 ...
Error 多次循环进行 Numpy Concentrate 操作后,当原始数组变得过大的时,单步处理时间会逐渐变长,处理大量数据的时候时间成本极高。 解决思路 这里简单的讲一下问题的定位过程,通过装饰器 Check 每个函数的执行时间,重点关注执行时长逐渐变长的部分。 ...
@Aikenhong 的旧笔记翻新完善 1.0 Python 的灵活和广泛应用场景来自于众多的第三方库,由于强大的可拓展性和众多的库,使得 Python 的使用简单灵活,且应用面极广。 但是不同库之间的相互依赖关系,对版本的不同要求等等因素,使得"环境配置"成为了开发者闻之变色的一词,对一个新的库和项目环境的配置尝尝会花去大量的时间,这可能也是 Docker、Venv(虚拟环境)必须存在的原因之一。 这里不对 Docker 及其相关技术,进行说明,会另开章节进行学习。 才疏学浅的本菜鸡希望从 python 开发者避不开的 conda 和 pip 出发介绍一下关于库安装的一些事情,以及这两个 CLI 的关系。 Anaconda MiniConda 和 Conda anaconda 是一个针对数据科学的 Python 发行版,其包含了一下三个方面的内容: 完整的 python,ipython numpy、Script 等常用的数据科学库 包管理器 Conda 和 pip 软件发行版是在系统上提前编译和配置好的软件包集合, 装好了后就可以直接用 miniconda 是 conda 的发行版,其包含了 conda 本体和其所需的所有环境,安装了 miniconda 后就可以正常使用 conda,由于其不包含 python 和诸多第三方包,所以会比 anaconda 纯净得多,我们可以基于其从零开始搭建一个完整的环境。 而 conda 只是一个包(lib、package)和环境(env)的管理工具,其用于自动安装,升级,(也可分析包之间的相互依赖关系)的工具。 Conda 和 Pip 的关联和区别 conda 是通用(语言无关且跨平台)的包管理器,它发源于 python 的 pydata 社区,但他不仅适用于 python 包的管理,还适用于任何语言写的包和依赖,但是我们应该大多数时候只用来做 python 管理。 其只能在 conda 环境中安装包,但是可以安装各种语言和各种类型的包。 pip(pip install package) 是 python 官方认证的 python 包通用管理器,只能管理 python 包,安装发布于 python package index(pypi)上的所有包,均由 python 官方管理。 ...
该文章将介绍 Python 中的单元测试之 Unittest 模块,及其在 VsCode 中的集成和使用,主要参考的链接有以下的三个: Unittest的基本用法 、Python官方文档 VsCode运行Unittest ,其对应 VsCode 侧边栏中的“测试”模块,该部分就由本文来自行补充 使用Unittest模拟input的输入 ,便于测试基于命令行输入的代码 基本用法 在工作区中定义示例函数如下,基于该函数进行Unittest的测试和演示: python # we save this function in function_module.py def add_4_ut(a,b): return a+b 基本使用的代码如下: python import unittest from function_module import add_4_ut # 使用TestCase基类构建测试样例和测试方法,运行的时候会对编写的所有测试方法进行测试 class TestAddFunction(unittest.TestCase): def test_ez(self): self.assertEqual(add_4_ut(3,5),8) def test_complex(self): self.assert(add_4_ut(1023,2032),3055) ... # using the main function buildin the unittest, to run all the method we define in the TestCale. if __name__ == '__main__': unittest.main() 模拟命令行输入 使用unittest.mock的patch模块进行输入输出模块的模拟和测试,具体的使用方法如下: ...
个人的《Python Cookbook》 && 《Fluent Python》阅读笔记。 数据模型(Python结构的通用范式) (Magic method)dunder method:Python特有的双下划线方法,这些方法能够支持Python进行特殊的调用,实现通用方法在新定义的数据结构上的使用,比如最典型的: __len__()后可以支持len(),获得结构的长度 __getitem__()后可以支持data[index]来获取相应的元素,切片,等等数组的操作; python # 也可以支持类似如下的一些操作 # 从数据结构中随机选出一个items from random import choice choice(datas) # 也可以支持迭代方法和反迭代方法 for data in datas: ... for data in reversed(datas): ... # 也可以支持sort函数 到这里也就说明了,只要我们在数据结构(class)中定义了相应的dunder method,该class就能支持相应的一系列操作,getitems就可以类比为列表,相应的操作都能够在python解释器下自动的赋予支持。 还有一些好用但不常用的方法: __contain__实现的是in ,当没有实现contain的方法的时候会按照顺序在list中进行搜索 __abs__ __repr__实现的是输出的format设置,也就是print的时候的输出形式 __eq__ 实现的是 == 命令,同时in调用的是__eq__ 下面附上一张特殊方法表: 基本命名规范 相关的文件和函数等命名规则。 ...