
python
不要清汤锅
The lion doesn't concern himself with the opinions of the sheep
展开
-
Python Counter()计数工具
class collections.Counter([iterable-or-mapping])Counter是实现的dict的一个子类,可以用来方便地计数。例子举个计数的例子,需要统计一个文件中,每个单词出现的次数。实现方法如下# 普通青年d = {}with open('/etc/passwd') as f: for line in f: for word in line.strip().split(':'): if word ...转载 2021-05-27 15:30:47 · 239 阅读 · 0 评论 -
PYTHON3中REDUCE函数的使用
在python3中如果使用reduce需要先导入from functools import reducereduce函数,reduce函数会对参数序列中元素进行累积。reduce函数的定义:reduce(function, sequence [, initial] ) -> valuefunction参数是一个有两个参数的函数,reduce依次从sequence中取一个元素,和上一次调用function的结果做参数再次调用function。第一次调用function时,如果提供ini转载 2021-05-26 22:58:38 · 433 阅读 · 0 评论 -
python 实现矩阵旋转
今天做了一道 leetcode 关于矩阵旋转(rotate-image,点击可查看原题)的题目,自己写了一种解法(基于Python),网上也看到一些比较好的解决方式,借此做一个总结。阅读本文可能需要 5-8 分钟题意分析题目是英文的,但是看这个题目英文理解起来也不是很困难。关键词: 1、matrix: 矩阵 2、2D matrix: 二维矩阵 3、rotate: 旋转 4、clockwise: 顺时针 5、90 degrees: 90度即:我们需要将一个二维矩阵顺时针旋转90度。 理解题意之转载 2021-05-24 08:42:27 · 3645 阅读 · 0 评论 -
序列解包(for x,y in zip(keys, values):)详解。
序列解包(for x,y in zip(keys, values):)详解。序列解包是一个非常重要和常用的一个功能,使用序列解包可以用非常简洁的方法完成复杂的功能。增强代码的可读性,减少代码量。1.使用序列解包对多个变量同时进行赋值。a, b, c = 1, 2, 3print(a, b, c)test_tuple = (False, 3.5, 'test')d, e, f = test_tupleprint(d, e, f)x, y, z = map(str, range(3)转载 2021-05-24 07:58:58 · 3519 阅读 · 0 评论 -
Python3 序列解包 *
Python 中有很多很实用的语法糖,这些语法糖可以帮助我们简化代码、更易理解等优点,接下里再看一个 Python3 中特别实用的语法序列解包(序列解包是 Python 3.0 之后才有的语法)。那什么是序列解包呢?先看一个例子:>>> a, b, c = 1, 2, 3>>> a1>>> b2>>> c3>>>这种方法并不限于列表和元组,而是适用于任意序列类型(甚至包括字符串和字节序列)。.转载 2021-05-24 07:52:36 · 223 阅读 · 0 评论 -
Python中的zip()的用法
https://blog.csdn.net/chengcheng95588/article/details/78784781原创 2021-05-23 21:15:52 · 121 阅读 · 0 评论 -
python list 与 String 互相转换
1 str0 = '127.0.0.1' 2 3 list0 = str0.split('.') 4 5 print(list0) 6 7 #['127', '0', '0', '1'] 8 9 10 str1 = '#'.join(list0)11 12 #127#0#0#11、list转str假设有一个名为test_list的list,转换后的str名为test_str则转换方法:test_str = "".join(test_list)...转载 2021-05-20 23:15:05 · 348 阅读 · 0 评论 -
Python - 判断list是否为空
Python中判断list是否为空有以下两种方式:方式一:1 list_temp = []2 if len(list_temp):3 # 存在值即为真4 else:5 # list_temp是空的方式二:1 list_temp = []2 if list_temp:3 # 存在值即为真4 else:5 # list_temp是空的以上两种方法均可以判断出 list_temp 列表是否是空列表,第二个方法要优于第一个方法,在Py转载 2021-05-19 17:01:04 · 602 阅读 · 0 评论 -
python collections模块详解
https://www.cnblogs.com/dahu-daqing/p/7040490.html原创 2021-05-14 21:43:52 · 225 阅读 · 0 评论 -
LeetCode刷题值得推荐的几个Python库
https://blog.csdn.net/weixin_43352942/article/details/102882517原创 2021-05-14 21:18:43 · 357 阅读 · 0 评论 -
Python中collections模块的使用
本文将详细讲解collections模块中的所有类,和每个类中的方法,从源码和性能的角度剖析。一个模块主要用来干嘛,有哪些类可以使用,看__init__.py就知道'''This module implements specialized container datatypes providingalternatives to Python's general purpose built-in containers, dict,list, set, and tuple.* namedtup转载 2021-05-14 21:16:16 · 395 阅读 · 0 评论 -
Python----知识点(嵌套列表)
嵌套列表(内存地址指向的问题)蛇友们都了解python中的一种数据类型:列表(list)而嵌套列表,就是列表中包含列表。听起来挺简单的,但确实是挺简单的,不过在使用嵌套列表时还是会遇到你意想不到的结果接下来,就来简单介绍下我遇到的坑点:#test为嵌套列表(表示为五行三列)test=[[0] * 3] * 5#试图对第一行第三列赋值test[0][2]=3print(test)当我们试图运行上面的代码时,我们预想的结果应该是:[[0, 0, 3], [0, 0, 0],转载 2021-05-14 20:06:03 · 466 阅读 · 0 评论 -
Python使用timeit模块的Timer类查看代码执行的时间并比较不同的列表构建方式的速度
https://blog.csdn.net/qq_36512295/article/details/98510737原创 2021-03-25 11:00:01 · 153 阅读 · 0 评论 -
Python3 * 和 ** 运算符
在 Python 中,* 和 ** 具有语法多义性,具体来说是有四类用法。1. 算数运算* 代表乘法** 代表乘方>>> 2 * 510>>> 2 ** 5322. 函数形参*args 和 **kwargs 主要用于函数定义。你可以将不定数量的参数传递给一个函数。不定的意思是:预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字。其实并不是必须写成 *args 和 **kwargs。 *(星号) 才是..转载 2021-03-04 10:32:54 · 326 阅读 · 1 评论 -
Win10安装CUDA10和cuDNN
官方安装教程CUDA:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.htmlcuDNN:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindowsWIN10安装CUDA10CUDA Toolkit 10.0 Download:https://developer.nvidia.com/cud转载 2021-01-09 19:14:40 · 153 阅读 · 0 评论 -
不同框架下的默认图片通道顺序
不同框架下的默认图片通道顺序caffe: NCHWpytorch: NCHWmxnet: NCHW海思bgr: NCHWNCNN: CHWtensorflow: NHWCopencv: NHWC瑞芯微rknn: NHWCscipy.misc: NHWC转载 2021-01-02 16:36:17 · 301 阅读 · 0 评论 -
NumPy 三维数组以及高维数组切片和索引
1,Indexing and slicing numpy arrayshttps://www.pythoninformer.com/python-libraries/numpy/numpy-and-images/In this section we will look at indexing and slicing. These work in a similar way to indexing and slicing with standard Pythonlists, with a few d.转载 2020-12-26 20:54:33 · 1631 阅读 · 1 评论 -
Numpy多维数组
创建矩阵我们可以传递以下形式的Python列表,让NumPy创建一个矩阵来表示它们:我们也可以使用上一篇中提到的相同方法ones(),zeros()和random.random()等,只要我们给它们一个元组来描述我们正在创建的矩阵的维度:另外,还可以从磁盘读取数组,无论是标准格式还是自定义格式。矩阵计算如果两个矩阵的大小相同,我们可以使用算术运算符来进行两个矩阵的计算。NumPy将对两个矩阵的对应位置进行操作处理。当两个矩阵的大小不同,只有当其中一个矩阵的维度为1时(例如矩阵只有一...转载 2020-12-26 20:49:52 · 290 阅读 · 0 评论 -
Numpy&Pandas
一、Numpynumpy是以矩阵为基础的数学计算模块,提供高性能的矩阵运算,数组结构为ndarray。首先需要明确数组与列表的区别:数组是一种特殊变量,虽与列表相似,但列表可以存储任意类型的数据,数组只能存储一种类型的数据,同时,数组提供了许多方便统计计算的功能(如平均值mean、标准差std等)。那么numpy有哪些功能呢?首先在使用前要导入该模块(导入前要安装,方法自行搜索吧(*^-^*)),代码如下:import numpy as np1. 通过原有列表转化为数组2.转载 2020-12-26 20:29:45 · 205 阅读 · 1 评论 -
为什么用 Numpy 还是慢, 你用对了吗?
最近在写代码, 编一个 Python 模拟器, 做强化学习或机器学习的 simulation, 好不容易用传说中 Python 里速度最快的计算模块 "Numpy" 的写好了, 结果运行起来, 出奇的慢! 因为一次simulation要一个小时, 要不停测试, 所以自己受不了了.. 首先, 我的脑海中的问题, 渐渐浮现出来.我知道 Pandas 要比 Numpy 慢, 所以我尽量避免用 Pandas. 但是 Numpy (速度怪兽), 为什么还是这么慢?带有写代码洁癖的我好好给 google ...转载 2020-12-26 19:46:00 · 1871 阅读 · 2 评论 -
有这5小段代码在手,轻松实现数据可视化(Python+Matplotlib)
本文要讲的是Matplotlib,一个强大的Python可视化库。一共5小段代码,轻松实现散点图、折线图、直方图、柱状图、箱线图,每段代码只有10行,也是再简单不过了吧!数据可视化是数据科学家工作的一项主要任务。在项目早期阶段,通常会进行探索性数据分析(EDA)以获取对数据的理解和洞察,尤其对于大型高维的数据集,数据可视化着实有助于使数据关系更清晰易懂。同时在项目结束时,以清晰、简洁和引人注目的方式展示最终结果也是非常重要的,因为受众往往是非技术性客户,只有这样,他们才更容易去理解。Matplo转载 2020-12-26 18:32:24 · 1186 阅读 · 0 评论 -
Python、Numpy、Pandas、SciPy、Scikit-Learn、Matplotlib的关系及学习资料
3. 学习资料3.1. Python的学习资料a.廖雪峰python学习笔记https://blog.csdn.net/datawhale/article/category/7779959b.python入门笔记作者李金,这个是jupyter notebook文件,把python的主要语法演示了一次,值得推荐。下载链接:https://pan.baidu.com/s/1IPZI5rygbIh5R5OuTHajzA 提取码: 2bzhc.代码规范:https://zhuanlan...转载 2020-12-26 18:24:12 · 466 阅读 · 0 评论 -
python 嵌套列表创建
1.初始化列表及修改 初始化列表有很多方法,其中之一可以通过*来初始化:a=[[]]*3printa>>> [[], [], []]通过这个方法获取了一个包含三个空list的嵌套列表,下面对这个列表进行修改:a[0].append(1)printa>>> [[1], [1], [1]]通过输出,我们发现我们只是修改了a[0], 为什么a里的子列表全部都被修改了,接下来通过内置函数id来查看一下a的子元素的内存地址(通过...转载 2020-12-26 11:30:17 · 7859 阅读 · 1 评论 -
理解Python对象的属性和描述器
对于Python对象的属性是如何读取的,我一直存在一些疑问。对对象的属性赋值,什么时候直接指向一个新的对象,什么时候会直接抛出AttributeError错误,什么时候会通过Descriptor?Python的descriptor是怎么工作的?如果对a.x进行赋值,那么a.x不是应该直接指向一个新的对象吗?但是如果x是一个descriptor实例,为什么不会直接指向新对象而是执行__get__方法?经过一番研究和实验尝试,我大体明白了这个过程。__getattr__ __getattribute__和_转载 2020-12-23 15:48:08 · 203 阅读 · 0 评论 -
谈谈Python for循环的作用域
对于从其他语言转到Python的人来说,下面这段代码显得很诡异: 1 2 3 for i in range(3): print(i) print(i) 你期望的是i变量不存在报错,而实际上打印结果是: 1 2 3 4 0 1 2 2 这是因为,在Pyhton中,是没有block这个概念的。Python中的作用域只有四种,即LEGB...转载 2020-12-23 15:45:22 · 2943 阅读 · 0 评论 -
python中的绘图
简单折线图# plot()默认第一个点对应的x坐标值为0# 绘制简单折线图squares=[1,4,9,16,25]# 设置线条粗细plt.plot(squares,linewidth=5)# 设置标题plt.title("square Numbers", fontsize=24)# 给坐标轴加标签plt.xlabel("value",fontsize=14)plt.ylabel("Square of Value",fontsize=14)# 设置刻度样式plt.tick_p.原创 2020-12-22 21:54:43 · 487 阅读 · 1 评论 -
为什么Python类的方法需要加self作为第一个参数?
为什么Python类的方法需要加self作为第一个参数?比如Python类的方法都是这样定义的: 1 2 3 4 5 6 7 8 9 10 11 class CharField(Field): description = _("String (up to %(max_length)s)") def __init__(self, *args, **kwar...转载 2020-12-22 15:38:14 · 7592 阅读 · 2 评论 -
python中yield的用法详解
接下来是正题:首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”,这个是直观的,它首先是个return,普通的return是什么意思,就是在程序中返回某个值,返回之后程序就不再往下运行了。看做return之后再把它看做一个是生成器(generator)的一部分(带yield的函数才是真正的迭代器),好了,如果你对这些不明白的话,那先把yield看做return,然后直接看下面的程序,你就会明白yield的全部意思了:def foo(): print("s转载 2020-12-18 16:04:51 · 136 阅读 · 1 评论 -
python生成式和生成器
f = [x for x in range(1, 10)]print(f)f = [x + y for x in 'ABCDE' for y in '1234567']print(f)# 用列表的生成表达式语法创建列表容器# 用这种语法创建列表之后元素已经准备就绪所以需要耗费较多的内存空间f = [x ** 2 for x in range(1, 1000)]print(sys.getsizeof(f)) # 查看对象占用内存的字节数print(f)# 请注意下面的代码创建的不是一个列.转载 2020-12-18 12:20:07 · 149 阅读 · 1 评论 -
Python中*和**的区别
Python中,(*)会把接收到的参数形成一个元组,而(**)则会把接收到的参数存入一个字典我们可以看到,foo方法可以接收任意长度的参数,并把它们存入一个元组中 1 2 3 4 5 6 7 8 9 10 11 12 >>>deffoo(*args): ...print(args) ... >>> foo(...转载 2020-12-18 10:19:58 · 682 阅读 · 0 评论 -
python 中_和__的区别
和__的区别xx:公有变量,所有对象都可以访问; _xx:单前置下划线,私有化属性和方法,for 包名 import * 禁止导入,类对象和子类可以访问,使用对象._变量名调用; __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问,应使用对象._类名__变量名调用; __xx__:双前后下划线,用于定义类的魔法属性/模法方法,例如:__init__,__str__等,无法直接调用; xx_:单后置下划线,用于避免与python关键字的冲突。...转载 2020-12-18 10:06:41 · 370 阅读 · 0 评论 -
Python源码剖析 - Python的总体架构
01. 前言Python程序的代码是如何组织的,在代码完成编写后,又是如何运行的,它其中的原理是怎么回事,大家对这些问题一定很感兴趣。接下来,兔子先生带着大家一探究竟。02. Python的总体架构从顶层设计上来看,Python可以分为三大部分:代码文件File Groups- 包括模块、库及用户自定义的模块。 解释器Interpreter- 又称Python虚拟机,对代码分析理解,翻译成字节流,并运行这些字节代码。 运行环境Runtime Env- 包括运行时的对象、基...转载 2020-12-17 19:53:11 · 493 阅读 · 0 评论 -
由Python历史「解密」Python底层逻辑
一次纯粹的hackingPython的作者,Guido von Rossum,荷兰人。1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位。尽管,他算得上是一位数学家,但他更加享受计算机带来的乐趣,热衷于做任何和编程相关的活儿。80年代,掀起了个人电脑浪潮,但受限于个人电脑配置低,所有的编译器的核心是做优化,以便让程序能够运行。在那个时代,程序员恨不得用手榨取计算机每一寸的能力。有人甚至认为C语言的指针是在浪费内存,至于动态类型,内存自动管理,面向对象…… 别想了,那会让你的电脑陷入瘫痪转载 2020-12-17 19:49:24 · 338 阅读 · 0 评论 -
Python底层是用什么语言实现的?
用 C 语言编写实现的 Python,又称为 CPython。平时我们所讨论的 Python,指的其实就是 CPython。随着编程语言的不断发展,Python 的实现方式也发生了变化,除了用 C 语言实现外,Python 还有其他的实现方式。例如,用 Java 语言实现的 Python 称为 JPython,用 .net 实现的 Python 称为 IronPython 等等。Python 的这些实现方式虽然诞生比 CPython 晚,但一直在努力地跟上主流,并在不同的生产环境中不断地使用并推广转载 2020-12-17 19:40:21 · 3264 阅读 · 0 评论