![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
老卫带你学
专注AI,云计算
展开
-
老卫带你学---python中could not install packages due to an EnvironmentError: No such file or directory
把site-packages里的pip-10.0.1.dist-info删掉。原创 2024-05-19 14:31:09 · 243 阅读 · 0 评论 -
老卫带你学---python类变量、成员变量(语录)
python中类变量和实例变量是不一样的:原创 2024-05-19 13:15:20 · 102 阅读 · 0 评论 -
老卫带你学---pydantic介绍
>> x = 4>>> x = "hello, 宇宙之一粟"大约在 Python 3.5 起引入了 type hints 类型注解,虽然 Python 在运行时不强制执行函数和变量类型注解,但这些注解可用于类型检查器、IDE、静态检查器等第三方工具,这些工具就可以帮助我们侦测类型上的错误。原创 2024-05-19 13:12:06 · 665 阅读 · 0 评论 -
老卫带你学---leetcode刷题(35. 搜索插入位置)
35. 搜索插入位置问题给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4解决经典二分查找python原创 2022-05-17 10:25:07 · 201 阅读 · 0 评论 -
老卫带你学---python制作gif动图
使用python,通过很多张图片来生成gif动图import imageiodef create_gif(image_list, gif_name, duration = 1.0): ''' :param image_list: 这个列表用于存放生成动图的图片 :param gif_name: 字符串,所生成gif文件名,带.gif后缀 :param duration: 图像间隔时间 :return: ''' frames = [] fo原创 2021-05-20 15:07:44 · 325 阅读 · 0 评论 -
老卫带你学---ubuntu中默认Python2和Python3的转换命令
在ubuntu中我们想要进行python2和python3的切换,可以执行以下的命令:将默认的 Python 设置为 Python2:echo alias python=python2 >> ~/.bashrcsource ~/.bashrc将默认的 Python 设置为 Python3:echo alias python=python3 >> ~/.bashrcsource ~/.bashrc...原创 2021-05-13 15:02:12 · 196 阅读 · 0 评论 -
老卫带你学---python的re寻找字符串中某个字符的位置
可以通过python中的re库,去寻找字符串中某个字符的位置i="w='e'a=[m.start() for m in re.finditer(w,i)]print(a)原创 2021-04-08 14:54:14 · 1262 阅读 · 0 评论 -
老卫带你学---python创建二维数组
python创建二维数组在python中创建二维数组,采用这样的方式:graph=[[0]*n for _ in range(n)]不要采用 graph=[[0]*n]*n这样的方式因为这样的方式只是对原有list的引用,对一个list进行修改,会对所有的list都修改...原创 2021-04-07 12:02:44 · 145 阅读 · 0 评论 -
老卫带你学---寻找numpy数组中全0列或全0行
寻找numpy数组中全0列或全0行a=numpy.array()zero_col=np.where(~a.any(axis=0))[0] #寻找全0列zero_col=np.where(~a.any(axis=1))[0] #寻找全0行原创 2021-03-19 20:27:54 · 1567 阅读 · 0 评论 -
老卫带你学---matplotlib改变图的label,title,坐标轴的字体的粗细
matplotlib改变图的label,title,坐标轴的字体的粗细plt.rcParams["font.weight"] = "bold"plt.rcParams["axes.labelweight"] = "bold"这两行代码放到代码中的顶端,用于坐标轴文字加粗legend_prop = {'weight':'bold'}plt.legend(prop=legend_prop)这两行代码用于 label 加粗ax.set_title('Training Accuracy',font原创 2021-03-19 14:34:19 · 1877 阅读 · 0 评论 -
老卫带你学---! LaTeX Error: File `*.tex‘ not found.
如果在使用LaTeX过程中出现类似这样的问题:可以在下面的,输入文件名中,输入对应文件的绝对路径地址。原创 2021-03-15 16:49:43 · 3988 阅读 · 0 评论 -
老卫带你学---安装python包出现PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。
当安装依赖xgboost的python包时,可能会出现以下错误:PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\AppData\\Local\\Temp\\pip-build-v7cdk88\\xgboost\\xgboost\\lib\\xgboost.dll'因为windowns下的终端显示用的还是gbk编码,所以还得修改pip的源代码打开c:\program files\python36\lib\site-pac原创 2021-02-27 22:51:45 · 1133 阅读 · 0 评论 -
老卫带你学---python绘制混淆矩阵
根据需要修改矩阵里面的数据即可import seaborn as snsfrom sklearn.metrics import confusion_matriximport matplotlib.pyplot as pltimport numpy as npdef plot(matrix): sns.set() f,ax=plt.subplots() print(matrix) #打印出来看看 sns.heatmap(matrix,annot=True,cmap="Blues",a原创 2021-02-15 15:51:27 · 273 阅读 · 0 评论 -
老卫带你学---numpy提取矩阵统计特征
原创 2021-02-10 16:09:36 · 363 阅读 · 0 评论 -
老卫带你学---python快速清空文件夹
需要在执行某些代码前清空指定的文件夹,如果直接用os.remove(),可能出现因文件夹中文件被占用而无法删除,解决方法也很简单,先强制删除文件夹,再重新建同名文件夹即可:import shutilimport osshutil.rmtree('要清空的文件夹名')os.mkdir('要清空的文件夹名')...原创 2021-02-02 22:09:37 · 186 阅读 · 0 评论 -
老卫带你学---tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm
在用keras或者tensorflow训练的时候出现类似这样的错误:tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above. [Op:Conv2D]原创 2021-02-02 19:48:55 · 331 阅读 · 0 评论 -
老卫带你学---leetcode刷题(448. 找到所有数组中消失的数字)
448. 找到所有数组中消失的数字问题:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]解决:思想:使用哈希表我们假设数组大小为 N,它应该包含从 1 到 N 的数字。但是有原创 2021-01-10 21:55:06 · 88 阅读 · 0 评论 -
老卫带你学---Python中将字符串类型list转换成list
Python中将字符串类型list转换成listpython读取了一个类似list的字符串形式为’[168, 169, 170, 171, 172, 174, 185, 187, 159]’,想将其转换成list类型,有两种方式:1 使用ast包:ast是python源码到字节码的一种中间产物,借助ast模块可以从语法树的角度分析源码结构。代码如下:data_json = ast.literal_eval(data)2.使用json包:json指的是 JavaScript 对象表示法(Java原创 2020-11-28 04:46:59 · 808 阅读 · 0 评论 -
老卫带你学---Windows10下Anaconda报错解决
在 Windows10 系统下创建 conda 环境时报错:C:\Users\lenovo> conda create -n py37 python=3.7Collecting package metadata: failedCondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/free/noarch/repodata.json.bz2>Elapsed: -An原创 2020-11-27 12:09:05 · 371 阅读 · 0 评论 -
老卫带你学---python文字转图片
#coding=utf8# 载入必要的模块import pygame# pygame初始化pygame.init()# 待转换文字text = "文字转图片"# 设置字体和字号font = pygame.font.SysFont('SimHei', 64)# 渲染图片,设置背景颜色和字体样式,前面的颜色是字体颜色ftext = font.render(text, True, (65, 83, 130), (255, 255, 255))# 保存图片pygame.image原创 2020-10-27 09:46:29 · 301 阅读 · 0 评论 -
老卫带你学---Python 实例方法、类方法、静态方法的区别与作用
Python 实例方法、类方法、静态方法的区别与作用Python中至少有三种比较常见的方法类型,即实例方法,类方法、静态方法。它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文。首先,这三种方法都定义在类中。下面我先简单说一下怎么定义和调用的。(PS:实例对象的权限最大。)实例方法定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法);调用:只能由实例对象调用。类方法定义:使用装饰器@classmethod。第一个原创 2020-09-13 18:37:30 · 179 阅读 · 0 评论 -
老卫带你学---python进程池apply与apply_async
python进程池apply与apply_asyncapply方法是阻塞的。意思就是等待当前子进程执行完毕后,在执行下一个进程。apply_async 是异步非阻塞的。意思就是:不用等待当前进程执行完毕,随时根据系统调度来进行进程切换。apply是阻塞式的。首先主进程开始运行,碰到子进程,操作系统切换到子进程,等待子进程运行结束后,在切换到另外一个子进程,直到所有子进程运行完毕。然后在切换到主进程,运行剩余的部分。apply_async是异步非阻塞式的。首先主进程开始运行,碰到子进程后,主原创 2020-09-11 11:15:07 · 405 阅读 · 0 评论 -
老卫带你学---Python 中的__new__和__init__的区别
Python 中的__new__和__init__的区别【同】二者均是Python面向对象语言中的函数,__new__比较少用,__init__则用的比较多。【异】__new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例对象,是个静态方法。__init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值,通常用在初始化一个类实例的时候。是一个实例方法。也就是: __new__先被调用,__init__后被调用,__new__的返回值(实例)将传递给__init_原创 2020-09-11 09:42:17 · 974 阅读 · 0 评论 -
老卫带你学---python中的类方法、静态方法、动态方法的理解
一、定义序号实例方法类方法静态方法定义第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法调用只能由实例对象调用实例对象和类对象都可以调用实例对象和类对象都可以调用属性及方法传递(原创 2020-09-10 15:42:31 · 228 阅读 · 0 评论 -
老卫带你学---python中的整数内存大小
关于python的int型数据的大小,我们可以用sizeof内置方法,查看一个数的内存大小i=0print(i.__sizeof__())24但是如果我们的数变大了,它就会动态的进行变化i=99999999999999print(i.__sizeof__())32以python3版本为例说明, int 类型在python中是动态长度的。因为python3中int类型是长整型,理论支持无限大的数字,但它的结构其实也很简单, 在 longintepr.h 中定义:struct _lon原创 2020-09-08 21:42:36 · 1085 阅读 · 0 评论 -
老卫带你学---python实现replace函数功能
老卫带你学—python实现replace函数功能在我们python中是内置了replace函数功能的,那如何不使用replace函数来实现该功能呢思想:设置滑动窗口,通过滑动窗口比较子串和待替换字符串,如果相等,则进行替换python代码:def replace(str1,k1,k2): str1=[x for x in str1] n=len(str1) result=str1 for i in range(n): for j in range(原创 2020-09-07 16:02:02 · 1122 阅读 · 0 评论 -
老卫带你学---python装饰器
python装饰器python的装饰器,就是在不修改原有代码的基础上,增加额外的功能假如我们原有一个函数,这个函数它的功能是寻找1-n范围内的偶数def func(): for i in range(1000): if i%2==0: print(i)r=func()此时打印如下:...988990992994996998...那如果我们需要 增加一个计时功能,计算该函数的运算时间那我们可以这样写:import timed原创 2020-08-30 19:41:11 · 138 阅读 · 0 评论 -
老卫带你学---PYTHON之WITH语句原理
PYTHON之WITH语句原理我们看一个with处理文件操作的实例:with open('/etc/passwd') as f: for line in f: print(line)这段代码的作用:打开一个文件,如果一切正常,把文件对象赋值给f,然后用迭代器遍历文件中每一行,当完成时,关闭文件;而无论在这段代码的任何地方,如果发生异常,此时文件仍会被关闭。with看起来如此简单,但是其背后还有一些工作要做,因为你不能对Python的任意对象使用with语句,它仅能工作于支原创 2020-08-21 09:27:59 · 137 阅读 · 0 评论 -
老卫带你学---list和tuple的区别
老卫带你学—list和tuple的区别list和tuple都是一个可以放置任意数据类型的有序集合,都是既可以存放数字、字符串、对象等list和tuple都支持负索引In [8]: nums[-2]Out[8]: 'ad'In [9]: tp[-2]Out[9]: '33'list和tuple都支持切片操作In [10]: nums[1:3]Out[10]: [3, 'ad']In [11]: tp[1:3]Out[11]: (3, '33')list和tuple都可以随意嵌套原创 2020-08-10 19:27:23 · 1159 阅读 · 0 评论 -
老卫带你学---python反爬虫与反反爬虫
老卫带你学—python反爬虫与反反爬虫在抓取对方网站、APP 应用的相关数据时,经常会遇到一系列的方法阻止爬虫。一方面是为了保证服务的质量,另一方面是保护数据不被获取。常见的一些反爬虫 和反反爬虫的手段如下。(1)IP 限制IP 限制是很常见的一种反爬虫的方式。服务端在一定时间内统计 IP 地址的访问 次数,当次数、频率达到一定阈值时返回错误码或者拒绝服务。这种方式比较直接 简单,但在 IPv4 资源越来越不足的情况下,很多用户共享一个 IP 出口,典型的如“长 城宽带”等共享型的 ISP。另外手机原创 2020-08-10 19:22:56 · 1631 阅读 · 0 评论 -
老卫带你学---动态语言和静态语言的区别
老卫带你学—动态语言和静态语言的区别1、基本概念静态语言(强类型语言)静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。例如:C++、Java、Delphi、C#等。动态语言(弱类型语言)动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。强类型定义语言强制数据类型定义的原创 2020-08-10 18:58:35 · 301 阅读 · 0 评论 -
老卫带你学---python迭代器和生成器
老卫带你学—python迭代器和生成器迭代器#实现了迭代器协议的对象,称为迭代器。1 迭代器协议: 迭代器必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么返回一个异常来终止本次迭代。(只能往前走,不能往后退!)2 可迭代对象: 遵循了(实现了)迭代器协议的对象。(对象内部定义了一个__iter__()方法,以实现迭代器协议) 所以:列表、元组、字典、字符串等等的都不是可迭代对象,当用for循环遍历的时候,其实for先去执行了l.iter()方法,将列表、元组、字符串等变成原创 2020-08-10 18:54:40 · 148 阅读 · 0 评论 -
老卫带你学---java多线程和python多线程
老卫带你学—java多线程和python多线程Java多线程Java多线程的生命周期及五种基本状态 如图所示:这里写图片描述线程的状态:新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread();就绪状态(Runnable):当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状态的线程,只是说明此线程已经做好了准备,随时等待CPU调度执行,并不是说执行了t.start()此线程立即就会执行;运行状态(原创 2020-08-10 18:35:01 · 600 阅读 · 0 评论 -
老卫带你学---python的GIL锁
老卫带你学—python的GIL锁GIL是什么首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。有名的编译器例如GCC,INTEL C++,Visual C++等。Python也一样,同样一段代码可以通过CPython,PyPy,Psyco等不同的Python执行环境来执行。像其中的JPython就没有GIL。然而因为CPython是大部分环境下默认的Pyth原创 2020-08-10 18:27:28 · 160 阅读 · 0 评论 -
老卫带你学---剑指offer刷题系列(1.二维数组中的查找)
1.二维数组中的查找问题:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解决:思想:抓住数据的特征,我们只需要从数组的最后一行的第一个元素,反向查找即可;原理如下,如果每一行的第一个元素比target小,那么我们就没必要去看这一行后面的元素了,让 i 自减1;java代码:public class Solution { public boo原创 2020-07-05 23:59:52 · 200 阅读 · 0 评论 -
老卫带你学---使用cv2.imwrite保存的图像是全黑的
在使用opencv的cv.imwrite函数进行图像保存的时候,发现保存下来的图像都是全黑cv.imwrite("gamma_enhance.jpg",out)因为image是0-255的数值,现在标准化了,全都是0-1之间的数值,还原就行了out = out * 255cv2.imwrite('ck_slic1.jpg',out)...原创 2020-07-05 20:07:54 · 1454 阅读 · 1 评论 -
老卫带你学---leetcode刷题(64. 最小路径和)
64. 最小路径和问题:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。解决:思想:python代码:import copyclass Solution: def minPathSum(self, grid: List[List[int]]) ->原创 2020-06-24 14:01:26 · 247 阅读 · 0 评论 -
老卫带你学---leetcode刷题(300. 最长上升子序列)
300. 最长上升子序列问题:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。解决:思想:python代码:class Solution: def lengthOfLIS(self, nums: List[int]) -> int: n=len(nums) if(n==0):原创 2020-06-24 09:58:09 · 207 阅读 · 0 评论 -
老卫带你学---leetcode刷题(120. 三角形最小路径和)
120. 三角形最小路径和问题:给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。解决:思想:python代码:import copyclass Solutio原创 2020-06-23 20:57:58 · 144 阅读 · 0 评论 -
老卫带你学---给numpy矩阵添加一列
问题的定义:首先我们有一个数据是一个m n的numpy矩阵现在我们希望能够进行给他加上一列变成一个m (n+1)的矩阵import numpy as npa = np.array([[1,2,3],[4,5,6],[7,8,9]])b = np.ones(3)c = np.array([[1,2,3,1],[4,5,6,1],[7,8,9,1]])print(a)print(b)p...原创 2020-05-07 09:08:43 · 303 阅读 · 0 评论