Python
好运来2333
接受自己的平凡,但要活得不平庸!
展开
-
Python中正则表达式
Python RE模块正则表达式中常用的字符有两类:普通字符和11个元字符,元字符表示特定的功能,比如下面的(),被括起来的表达式将作为分组,从表达式左边开始每遇到一个分组的左括号“(”,编号+1。分组表达式作为一个整体,可以后接数量词。表达式中的 | 仅在该组中有效。那么我们想匹配表达式中的 () 字符怎么办呢?通过前缀反斜杠 \ 将特殊字符(元字符)转义成普通字符。 注:在Python的string前面加上‘r’,即告诉编译器不要转义 \, 例如,\n 在raw string中,是两个字符\和n,而不会原创 2020-09-28 15:14:58 · 315 阅读 · 0 评论 -
Numpy基础知识
在讲解Numpy之前先看一幅图:可以看出,Numpy核心就是ndarray对象,一个ndarray对象实例由若干个dtype对象实例构成。这就是Numpy精髓所在。1. 数据类型Numpy中数据类型是dtype对象实例,dtype对象描述了对应于数组的固定内存块的解释。基本数据类型有:int16, uint16, float32等等。dtype构造语法:numpy.dtype(objec...原创 2020-02-22 17:26:27 · 356 阅读 · 0 评论 -
从 tf.stack 讲解参数axis
前面博客中已经对 axis 进行了详细的讲解,这篇博客继续强化一下对 axis 的理解,因为矩阵运算中 axis 是一个非常重要的概念。以 3D 图像为例:上面的 3D 图像的维度是 2 × 2 × 2 ,即每个小立方体(体素)存储着一个灰度值。现在假设有以下三个 3D图像:[[[1, 2], [3, 4]], [[5, 6], [7, 8]]][[[11, 12], [13, 14]...原创 2019-11-03 13:35:44 · 2088 阅读 · 0 评论 -
利用os模块编写一个能实现dir -l输出的程序
在Linux下命令ls和dir都有相同的功能:打印当前文件夹目录。注:ls 是Linux的原装命令,dir是原来dos的命令,Linux选择兼容了此个dos命令,所以dir和ls在功能上是一样的。1. ls命令...原创 2019-09-01 09:29:34 · 4164 阅读 · 2 评论 -
JupyterLab入门篇
1. Jupyter Lab简介Jupyter源于Ipython Notebook,是使用Python(也有R、Julia、Node等其他语言的内核)进行代码演示、数据分析、可视化、教学的很好的工具,对Python的愈加流行和在AI领域的领导地位有很大的推动作用。Jupyter Lab是Jupyter的一个拓展,提供了更好的用户体验,例如可以同时在一个浏览器页面打开编辑多个Notebook,I...原创 2019-09-01 09:08:18 · 11607 阅读 · 0 评论 -
AttributeError: module 'urllib' has no attribute 'urlencode'
python3的urllib结构与python不太一样了,可以作以下修改:urllib.parse.urlencode。python2与python3对比python2python3import urllib2import urllib.request,urllib.errorimport urllibimport urllib.request,urllib.er...原创 2019-07-03 10:28:53 · 15109 阅读 · 0 评论 -
python读取npy文件
Numpy binary files (NPY, NPZ)注:.npy文件是numpy专用的二进制文件。1. 读取与保存import numpy as nparr = np.array([[1, 2, 3], [4, 5, 6]])np.save('weight.npy', arr)loadData = np.load('weight.npy')p...原创 2019-06-09 13:23:42 · 114807 阅读 · 13 评论 -
TypeError: a bytes-like object is required, not 'str'
在python3中使用pickle库是出错:import picklewith open('train.pkl', 'r') as data_file: data = pickle.load(data_file) print(data[0])报错原因: python3和Python2在套接字返回值解码上有区别。在pyhon2中,返回值全是字符串,所以调用load()不...原创 2019-06-02 19:08:00 · 6026 阅读 · 0 评论 -
PyCharm3.0默认快捷键
编辑(Editing)Ctrl + Space 基本的代码完成(类、方法、属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift + Enter 语句完成Ctrl + P 参数信息(在方法中调用参数)Ctrl + Q 快速查看文档F1 外部文档Shift + F1 外部文档,进入web文档主页Ctrl + Shif...原创 2019-03-03 13:10:47 · 159 阅读 · 0 评论 -
Python中函数传参
先看一个问题:猜猜看b输出了什么?在讲解之前,先了解一下python中的可变对象与不可变对象。不可变对象:Number, String, Tuple, Bool可变对象:List, Dictionary, Set1. 实参为不可变对象注:传入不可变对象,在函数内对其操作不影响调用结束后对象的值,即不发生改变。2. 实参为可变对象注:对于可变对象,在函数体中的修改 , 使对象本身的...原创 2019-03-03 13:02:32 · 1080 阅读 · 0 评论 -
pandas进行数据分析
最近参加了一次APMCM,题目给出了很多表格,我们需要对数据进行分析。显然,作为一名会python的大学生,肯定不会直接在表格上进行各种变动,本文就如何使用pandas对excel表格进行数据分析做一些介绍。1.分析目标excel表格给出了各个月份各种职业的特征,但我们需要研究某一种职业随时间变化的规律,所以需要对所有表的某一种职业整理到一张表中。这正是我们的出发点。2.项目结构3. ...原创 2018-12-07 10:06:00 · 3161 阅读 · 0 评论 -
以np.sum()为例讲解参数axis
1. 理解参数axisaxis中文翻译为“轴”,可以说很形象了。先看个数组:一层[]b原创 2018-11-01 08:19:00 · 9315 阅读 · 3 评论 -
Numpy数组广播Broadcasting机制
你可能已经知道,Numpy数组运算是对应维度元素进行运算,但是有时候却遇到维度shape不一样(有一定限制)的数组也可以进行运算,这就是Numpy数组广播机制。数组广播原则:如果两个数组的后缘维度(即从末尾算起的维度)的轴长相等,或者其中一个数组后续维度的轴长为1,则认为这两个数组是广播兼容的,广播会在缺失和(或)长度为1的轴上进行.只讲理论不举栗子的行为都是耍流氓,现在来看几个栗子:数组...原创 2018-11-01 08:18:39 · 722 阅读 · 0 评论 -
计算矩阵的欧式距离
对于kNN算法,难点在于计算测试集中每一样本到训练集中每一样本的欧氏距离,即计算两个矩阵之间的欧氏距离。现就计算欧式距离提出三种方法。#1. 两层循环分别对训练集和测试集中的数据进行循环遍历,计算每两个样本之间的欧式距离。此算法没有经过任何优化。import numpy as npmatrix_1 = np.array([[1, 2, 3], [4, 5, 6],...原创 2018-11-01 08:18:13 · 22251 阅读 · 14 评论 -
从python列表赋值谈shallow copy
1. Python变量在高级语言中,变量是对内存及其地址的抽象。对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是变量本身。静态语言如C++在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。python作为动态语言,与静态语言相比更灵活,正是这个原因。举个栗子:a = 'ABC'b = a...原创 2018-10-24 16:59:04 · 742 阅读 · 1 评论 -
pandas数据结构之DataFrame
概述:DataFrame对象是python中pandas的一种数据结构,类似于数据库表结构,其含有行索引与列索引。注:DataFrame可以看作由相同索引的Series组成的字典。1. 创建DataFrame对象2. 创建中指定顺序3. 创建中指定index(与Series一致)4. 嵌套字典创建DataFrame对象当由嵌套的字典类型生成DataFrame对象时,...原创 2018-10-01 07:25:00 · 356 阅读 · 0 评论 -
pandas数据结构之Series
概述:Series是pandas的线性数据结构,即一维数组。pandas默认采用0至n-1作为series的index,可以将index理解为字典中的关键字key。1. 创建series对象2. 创建中指定index3. 使用dictionary创建4. 使用numpy ndarray创建5. 数据访问Series的数据访问与python列表访问方式类似,比...原创 2018-10-01 07:24:45 · 267 阅读 · 0 评论 -
Git Bash上传项目至Github
1. 在Github上新建一个repository。2. 本地安装Git,参考:https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git。3. 选择项目文件夹,点击鼠标右键,在弹出的菜单项中选择“Git Bash Here”。4. 将Github上的仓库克隆到本地,在bash中:Git cl...原创 2018-10-01 07:23:59 · 1061 阅读 · 0 评论 -
collections模块的Counter类
Counter类:Counter类的目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和负数)。Counter类和其他语言的bags或multisets很相似。1. 创建Counter()类from collections import Counterc = Counter()...翻译 2018-10-01 07:22:51 · 1192 阅读 · 0 评论 -
Python中的if __name__ == '__main__'
在具体说明if __name__ == '__main__'功能前,先从一个简单的实例直观上感受一下。# const.pyPI = 3.14def train(): print("PI:", PI)train()# area.pyfrom const import PIdef calc_round_area(radius): return PI ...原创 2018-10-01 07:22:35 · 66849 阅读 · 18 评论