![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
CaoChengtai
这个作者很懒,什么都没留下…
展开
-
[error] Could not locate zlibwapi.dll. Please make sure it is in your library path
I tensorflow/stream_executor/cuda/cuda_dnn.cc:384] Loaded cuDNN version 8500Could not locate zlibwapi.dll. Please make sure it is in your library path!原创 2022-10-28 17:32:42 · 1533 阅读 · 2 评论 -
Python 利用 Pandas 将 json 文件转为 excel
需求:有一个json文件,想要转为excel表格文件解决方法:Pandas步骤:pip 去安装 Pandas此时 info2.json 文件内容为:{"time": "20210722", "name": "James", "age": "12"}我们代码为:import pandas as pddf = pd.read_json("info2.json")df.to_excel("info.xlsx")执行之后,报错如下:ValueError: If using all sca原创 2021-07-22 16:00:22 · 6589 阅读 · 1 评论 -
Python 图(Graph)数据结构(二):最小生成树
1. 最小生成树:最小生成树即为图中权值最小的生成树(生成树中所有边权重之和)。例如对于无向图:来说最小生成树就是:1.1 最小生成树算法最小生成树的算法主要有两个:Kruskal 算法Prim 算法1.1.1 Kruskal 算法算法演示如下:代码如下,嵌入到上一篇论文的图构造里面 Python 图(Graph)数据结构(一):图的构造与遍历(深度优先 DFS 和...原创 2020-04-23 10:20:46 · 1452 阅读 · 0 评论 -
Python 包(Package)和模块(Module)的概念
模块python模块是:自我包含并且有组织的代码片段为模块。表现形式为:写的代码保存为文件。这个文件就是一个模块。moudule.py 其中文件名moudule为模块名字。包python包是:包是一个有层次的文件目录结构,它定义了由n个模块或n个子包组成的python应用程序执行环境。表现形式通俗一点:包是一个包含__init__.py 文件的目录,该目录下一定得有这个__init__.py文件和其它模块或子包。总结简单讲,Package是由很多module组成,来实现某原创 2021-07-13 15:14:42 · 548 阅读 · 0 评论 -
python 双端队列:collections.deque 基本方法总结
1. 概述之前一篇博客介绍了一下 python 中队列的基本操作:Python 队列模块 Queue 的常用操作。但是我们发现了两个问题:向一个空的队列进行 get() 操作会进入“死循环”get 操作和我们理解的 get 操作有点差异,我们有时只需要知道队头元素时什么,但是不想取出。可以在 Queue 模块中,我们只能先 get,然后重新放入,并且还要重新调整好顺序。今天的双端队列一方面可以解决上述问题,另一方面某些场景下栈和队列都不能很好的对数据建模,而双端队列可以。双端队列可以看成栈和队列原创 2020-06-08 23:07:17 · 5738 阅读 · 0 评论 -
Python 队列模块 Queue 的常用操作
引言最近写代码的过程中,偶尔会遇到使用队列和栈。栈的使用可以用 python 中的 list 很好地模拟,因为尾部插入 (append) 和尾部弹出 (pop) 时间复杂度都为O(1),正好符合栈的后进先出的思想。但是对于队列 list 就没有那么友好了。无论 list 的哪一端都会导致队列的入队或出队一个复杂度为 O(n)当然我们也可以用两个栈模拟一个队列,但是会有额外操作和时间复杂度的问题。Python 的 Queue 模块提供了一般队列的操作;from queue import Queu原创 2020-06-04 21:00:06 · 5878 阅读 · 0 评论 -
Python 图(Graph)数据结构(三):最短路径 —— 迪杰斯特拉算法(dijkstra)
基本思想:通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。此外,引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求出最短路径的顶点(以及该顶点到起点s的距离)。初始时,S中只有起点s;U中是除s之外的顶点,并且U中顶点的路径是”起点s到该顶点的路径”。然后,从U中找出路径最短的顶点,并将其加入到S中;接着,更...原创 2020-04-24 10:26:55 · 1228 阅读 · 3 评论 -
Python 图(Graph)数据结构(一):图的构造与遍历(深度优先 DFS 和广度优先 BFS)
1. 图图是一种复杂的数据结构,因为图中可能存在多对多的关系。图 G 由顶点集 V 和边集 E 组成,记为 G=(V,E),其中 V 表示图 G 中顶点的有限非空集;E 表示图 G 中顶点之间的关系(边)的集合。图还可以分为有向图和无向图。2. 有向图的构造和遍历class MyDirectedGraph: def __init__(self, data=None): ...原创 2020-04-22 11:34:53 · 2443 阅读 · 3 评论 -
Python 实现十大排序算法
排序(有小到大排)1.1 冒泡排序:冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大(升序),就交换...原创 2020-04-20 22:15:19 · 357 阅读 · 0 评论 -
Python 数据结构之二叉树:二叉树的遍历:DFS 深度优先(先序遍历、中序遍历、后续遍历)和 BFS 广度优先遍历。
1. 二叉树:二叉树是一种常用的数据结构,是树这种数据机构的一种特例。它最多只有两个子节点,且如果有两个子节点,两个子节点之间是有顺序的,一个称为左孩子节点,一个称为右孩子节点。每个节点的构造如下:class TreeNode: def __init__(self, x): self.val = x self.left = None s...原创 2020-04-16 11:35:56 · 1946 阅读 · 1 评论 -
Python:切片操作详解
基本语法:object[start:end:step=1]step:正负数均可,其绝对值大小决定了切取数据时的‘‘步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。当step省略时,默认为1,即从左往右以步长1取值。start:开始位置索引。end:结束位置索引。功效:从 start 到 end 按照 step 选取元素作为一个新的对象。(包括 s...原创 2020-04-15 11:33:54 · 1907 阅读 · 0 评论 -
Python 数据结构之链表:单向链表,双向链表,循环链表实现。
1. 链表我们在Python 序列:列表 (list),元组(tuple),字符串(str)深入分析(包括扩容和摊销)。 和Python:栈和队列的 python 列表实现中可以看出链表是存在一定问题的:由于动态数组,底层的数组长度可能会超过实际存储元素的个数,造成空间上的浪费。我们 append 的平均时间复杂度是 O(1),但是这是摊销的结果,某一次的时间复杂度最坏为 O(n)。队列...原创 2020-04-14 10:36:21 · 673 阅读 · 0 评论 -
Python:栈和队列的 python 列表实现
1. 栈1.1 栈的基本概念栈是一种简单的数据结构,是由一些列对象组成的集合,这些对象的插入和删除操作遵循“后进先出”的原则。可以在任何时候向栈中插入一个对象,但是只能取得或者删除最后插入的对象(即所谓的“栈顶”)。1.2 栈的基本操作:假设栈为 S,栈的基本操作:S.push(e):将一个元素 e 添加到栈 S 的栈顶;S.pop():从栈 S 中返回栈顶的元素,如果栈为空,这个操...原创 2020-04-13 12:12:52 · 804 阅读 · 0 评论 -
Python 序列:列表 (list),元组(tuple),字符串(str)深入分析(包括扩容和摊销)。
1. 概述Python 中的序列类:列表 (list),元组(tuple),字符串(str)最主要的共性:支持下标访问序列元素,例如 list[1], tuple[0], str[1]。每个类都是使用数组这种低层次的概念来表示序列。2. 数组2.1 存储机制计算机是以字节(1 字节 = 8 位)为单位存储和访问数据的,并且存储器的任一单元被存储或检索的运行时间为 O(1)。数组:一组相关...原创 2020-04-12 17:55:57 · 1491 阅读 · 0 评论 -
Python:赋值,浅拷贝(copy)和深拷贝(deepcopy)
基础知识请查看之前博客:Python 对象:可变对象与不可变对象赋值、浅拷贝和深拷贝的关键问题:修改一个变量,会不会导致另外对象的改变。不可变对象:import copya1 = 0a2 = a1a3 = copy.copy(a1)a4 = copy.deepcopy(a1)print(id(a1))print(id(a2))print(id(a3))print(id(...原创 2020-04-11 11:15:19 · 1643 阅读 · 0 评论 -
Python: 变量 += 和 变量 = 变量 +
+= 和 = + 的内部实现:为了方便起见:a += 1 和 a = a + 1 这两种形式在本文中被缩写为 += 和 =+。+= 在内部的方法是: __iadd__=+ 在内部的方法是: __add__如果一个类,没有实现 __iadd__ 方法的话,python 就会退一步调用 __add__ 方法总体来说,可变类型都有 __iadd__ 方法,而不可变类型没有 __iadd__ 方...原创 2020-04-10 09:38:56 · 1662 阅读 · 0 评论 -
Python:range() 函数解析以及自己实现一个 range()
range() 函数1. 何为 range()首先我们需要知道 range() 函数返回的到底是一个什么东西:from collections import Iterablefrom collections import Iteratorx = range(100)print(isinstance(x, Iterable))print(isinstance(x, Iterator...原创 2020-04-09 22:49:24 · 3393 阅读 · 2 评论 -
Python:函数式编程(五):lambda 表达式和偏函数
lambda 表达式lambda 表达式是 Python 中创建匿名函数的一个特殊语法,匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序。lambda 表达式返回的是一个函数,一个匿名函数。例如我们定义求积函数的一般语法如下:def multiply(a, b): return a * b而我们使用我们的 lambda 表达式是这样的:f = lambd...原创 2020-04-08 12:05:57 · 560 阅读 · 0 评论 -
Python:函数式编程(四):装饰器
上文讲到函数式编程的闭包,这一节讲一下闭包的一个应用,装饰器。何为装饰器装饰器本质上是一个 Python 函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。...原创 2020-03-27 20:26:48 · 250 阅读 · 0 评论 -
Python:函数式编程(三):闭包
闭包的定义:维基百科关于闭包的定义:在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。前面提到函数式编程中函数作为“一等公民”,因此一个函数可以作为另一个函数的返回值。这就很显然...原创 2020-03-26 20:47:27 · 293 阅读 · 0 评论 -
Python:函数式编程(二):语法与内置函数
建议先阅读之前有关函数式编程的博客 Python:函数式编程(一):关于 Python 的函数式编程和可迭代对象,迭代器,生成器 Python:可迭代对象,迭代器,生成器的博客之后再来阅读此博客。1. 语法1.1 列表生成式:基本形式如下:list1 = [x * x for x in range(1, 11)]print(isinstance(list1, list))print(l...原创 2020-03-25 20:40:30 · 284 阅读 · 1 评论 -
Python:函数式编程(一):关于 Python 的函数式编程
11原创 2020-03-24 19:46:42 · 472 阅读 · 0 评论 -
Python:可迭代对象,迭代器,生成器。
提纲:生成器 ⫋\subsetneqq⫋ 迭代器 ⫋\subsetneqq⫋ 可迭代对象1. 可迭代对象:可迭代对象包括:迭代器 (包括生成器)。字符串 str,列表 list, 字典 dict,元组 tuple,集合 set。实现了 __iter__ 方法的对象。判断一个变量是否为可迭代对象:from collections import Iterableisinstance...原创 2020-03-19 20:54:08 · 957 阅读 · 0 评论 -
Python 列表 list 和字符串 str 的取值 [0] 和 [:1]
列表 list首先看一段代码:def list_head1(l): print(l[0])def list_head2(l): print(l[:1]) print(l)if __name__ == '__main__': L = [1, 2, 3, 4, 5] list_head1(L) list_head2(L)我们得到结果是...原创 2020-03-18 10:57:42 · 7146 阅读 · 1 评论 -
Python:is 和 == 的区别
总的来说,官方文档中说 is 表示的是对象标示符(object identity),而 == 表示的是相等(equality)。is 的作用是用来检查对象的标示符是否一致,也就是比较两个对象在内存中的地址是否一样,而 == 是用来检查两个对象是否相等。检查 a is b 的时候,其实相当于检查 id(a) == id(b)。检查 a == b 的时候,实际是调用了对象 a 的 __eq()_...原创 2020-03-17 16:59:32 · 180 阅读 · 0 评论 -
Python 函数:函数参数
首先给出一个最基本的函数:def say_hello(name): print('Hello', name)if __name__ == '__main__': say_hello('James')运行结果默认参数在我们的例子中,如果我们不知道他人的名称,如何向他人 say_hello 呢。这个就可以用默认参数,例如一般情况是和男士打招呼(程序媛太少了呀),代码如...原创 2020-03-16 23:11:27 · 192 阅读 · 0 评论 -
Python 对象:可变对象与不可变对象
Python 对象操作对象 (Objections) 是 python 中数据的抽象,python 中所有的数据均可以用对象或者是对象之间的关系来表示。每个对象均有标识符( identity)、类型 (type)、值 (value)。标识符:对象一旦创建,那么它的标识符就不会改变,可以把标识符看作对象在内存中的地址。 is 操作可以用来比较两个对象的标识符,函数 id() 用来返回对象标识符...原创 2020-03-12 23:15:14 · 837 阅读 · 0 评论 -
RuntimeError: cuDNN error: CUDNN_STATUS_BAD_PARAM
问题描述:在将输入数据送入到网络模型的时候,报错:RuntimeError: cuDNN error: CUDNN_STATUS_BAD_PARAM解决:一开始在网上查找相关问题描述,其中绝大部分说的是显卡中缓存太多,需要清理缓存然后重新启动。但是按照他们介绍的步骤,发现问题并没有得到解决,而且查看显卡状态,显存状态良好。最后在 stackoverflow 上找到的解决方法方法:...原创 2019-12-04 17:24:40 · 19674 阅读 · 10 评论 -
Python 用 xldr 读取 excel 时,如果表格中日期格式数据处理
问题描述最近在处理一个 excel 数据即的时候发现,如果表格中存在时间格式的数据时,常用方法:import xlrd readbook = xlrd.open_workbook('表格名.xls')sheet = book.sheet_by_index(子表序列)nrows = sheet.nrowsncols = sheet.ncolsfor row in range(sh...原创 2019-12-02 11:29:49 · 3491 阅读 · 0 评论 -
RuntimeError: Expected object of scalar type Double but got scalar type Float for argument #2 'mat2'
问题:RuntimeError: Expected object of scalar type Double but got scalar type Float for argument #2 ‘mat2’问题代码段:embedding1 = network.forward(train_support)解决方法: train_support = train_support.clone()...原创 2019-08-23 09:21:19 · 2774 阅读 · 0 评论 -
Pytorch--Tensor, Numpy--Array,Python--List 相互之间的转换。
1.1 List --> Arrary: np.array(List 变量)a = [1, 2, 3, 4]b = np.array(a)1.2 Arrary --> List: Array 变量.tolist()a = [1, 2, 3, 4]b = np.array(a)c = b.tolist()2.1 List --> Tensor: torch.T...原创 2019-08-13 17:02:34 · 15829 阅读 · 0 评论 -
Python: List (列表) 去重。
1. 目标:给定一个 list,去掉里面的重复元素,构成一个新的 list,返回一个新的 list。例如:Input list: a = [0, 1, 1, 2, 3, 4 ,4, 4, 5, 7, 7, 7, 7, 8, 8, 9 ]Outpu list: b = [0, 1, 2, 3, 4, 5, 7, 8, 9] (顺序不作要求)2. 方法:完整代码结构如下:def de...原创 2019-07-16 13:10:59 · 1175 阅读 · 1 评论