python
zhangt766
这个作者很懒,什么都没留下…
展开
-
错误异常处理
- 语法异常(SyntaxError Python):代码逻辑语法出错,不能执行。-- 未实现异常(NotImplementedError):尚未实现的方法。-- 属性异常(AttributeError):对象没有对应名称的属性。-- 类型异常(TypeError):不同类型数据进行运算。-- 索引异常(IndexError):超出索引范围。-- 键异常(KeyError):没有对应名称的键。-- 名称异常(NameError):变量未定义。-- 输入输出异常(IOErroe):输入输出异常。原创 2023-05-17 08:38:19 · 440 阅读 · 0 评论 -
python中的 r、b、u、的含义
注意: 一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u;建议所有编码方式采用utf8。1、字符串前面加r --主要为了处理转义字符的 , 比如最常见的”\n”表示换行,”\t”表示Tab等。3、字符串前面加u(unicode)-- unicode编码字符,python3默认字符串编码方式。以r开头说明后面的字符都是普通字符,比如:‘\n’表示换行,r’\n’表示一个\和一个n字符。2、字符串前面加b(bytes)–字节符,打印出来的数据以b开头。python中的 r、b、u、的含义。原创 2023-02-21 11:20:01 · 1438 阅读 · 0 评论 -
列表推导式
假如要生成一个列表,每个元素由1-4的奇数,和1-4的偶数对应:[(1, 2), (1, 4), (3, 2), (3, 4)]#x代表向列表中添加的元素,x来自于后面for循环,但是x要满足后面if条件才往列表中添加。# j的取值 第二个for j in range(1,5) 条件是j%2==0。不止列表有推导式,还有字典推导式,集合推导式(语法相同只是外边[]变成{})# 从1-10遍历 如果i%2==0证明是偶数则添加至空列表中。#练习3:生成一个0-10的列表,其中偶数加2 ,奇数+1。原创 2022-11-07 11:24:56 · 376 阅读 · 0 评论 -
文件管理模块总结
其实glob库很简单,只有3个主要函数供我们使用,它们分别是。的方法,主要它支持*、**、?、[ ]这四个通配符。shutil库,最主要的功能就是提供了对。glob库,提供了更加便捷的。函数,因此学习起来特别容易。原创 2022-10-27 08:56:07 · 788 阅读 · 0 评论 -
安装pytorch
此时能看到之前装的tensorflow等包,疑问:1.创建torch2环境时并没有下载这些包,怎么能看到;2.前面用pip下载了torch包,在上一个虚拟环境torch下输入代码pip3 list能看到torch包,这里怎么没有。在网上搜了不少教程,看起来都非常容易,上手问题多多,此文测评各种安装方式以及记录作者糟心的安装过程。分别采用了pip和conda进行安装,pip能装上,conda即使添加了镜像也安不上。#我的不是这个问题,使用的官网推荐代码,下载时并未指定版本,都是按照最新的下载。原创 2022-09-02 13:42:08 · 1618 阅读 · 0 评论 -
镜像源详解
一、镜像源来源镜像的来源,一般指国内存放国外软件镜像的网站、服务器。为啥需要镜像源,在国内由于各种原因下载或更新国外的软件(比如python)网速特别慢甚至连不上。Ubuntu、Python、Nodejs、MySQL、Git、Chromium、Docker、Homebrew 等一系列的常用开源系统、软件都是国外开发的,下载地址位于国外,从国内访问、下载、更新。所以找个镜像网站就解决了。二、镜像源常用代码三、临时使用。...原创 2022-09-01 08:19:07 · 6850 阅读 · 0 评论 -
Pycharm编辑器下,同一目录下的import 显示找不到对应模块的问题
自己手写代码时,可能遇到在Python编写时,需要用到导入已创建好的模块,但一般会出现下图红方块问题并没有要导入的模块的问题,即模块无法被识别。,将选项“AddsourcerootstoPYTHONPATH”勾选上。(有些可能已经勾选,如果你的此选项已勾选,则直接跳入到第二步)注在pycharm2019.03版本更新后会默认勾选这两。2、对于这个问题的大部分原因应该是未把文件夹设为根目录。...原创 2022-08-02 15:10:35 · 8721 阅读 · 1 评论 -
os.path.dirname(os.path.abspath(__file__))
代码】os.path.dirname(os.path.abspath(__file__))原创 2022-07-24 11:44:34 · 3287 阅读 · 1 评论 -
线性回归-教学版
下学期可能要教机器学习,在网上也看了不少课,觉得黄海广老师的比较适合学生入门,这里专门记录一下。才开始接触机器学习,一些学生常常分不清符号,这个图片很清晰。在课堂上一定要把,矩阵给学生展开来看,不然容易迷糊,最好让学生先手算.关于正则化,黄海广老师讲得有点难了关于正则化的引入,吴恩达教授也是先讲了过拟合(这边特别细致)正则化就是 减少w的权重。黄博士的课好在哪里呢,好在代码的配套很齐全,既手撕了线性回归,梯度下降也配套了sklearn 调用...原创 2022-02-11 15:12:04 · 451 阅读 · 0 评论 -
for 循环 IndexError: index 5 is out of bounds for axis 0 with size 4
在定义cost function时代码是这样的:def Cost(x,y,theta0,theta1): j=0 m=len(x) for i in range(m): h=theta0+theta1*x[i] j+=(h-y[i])**2 j/=(2*m) return j我突发奇想,既然for循环是在遍历第一个值到最后一个值,那为什么不直接for i in x呢?????于是就有了如下神经兮兮原创 2022-02-10 16:20:27 · 5122 阅读 · 0 评论 -
os.path.join()
os.path.join()函数:连接两个或更多的路径名组件1.如果各组件名首字母不包含’/’,则函数会自动加上2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾import osprint os.path.join('111','222','333') #111/222/333print os.path.join('/111','222','333') #/111/222/333print os.path原创 2022-02-10 14:03:26 · 139 阅读 · 0 评论 -
collections.defaultdict()
defaultdict:当我使用普通的字典时,用法一般是dict={},添加元素的只需要dict[element] =value即,调用的时候也是如此,dict[element] = xxx,但前提是element字典里,如果不在字典里就会报错,如:这时defaultdict就能排上用场了,defaultdict的作用是在于,当字典里的key不存在但被查找时,返回的不是keyError而是一个默认值,这个默认值是什么呢,下面会说如何使用defaultdictdefaultdict接受一个工厂函原创 2022-02-06 20:58:01 · 746 阅读 · 0 评论 -
@property
python的@property是python的一种装饰器,是用来修饰方法的。作用:我们可以使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同名称的只读属性,可以与所定义的属性配合使用,这样可以防止属性被修改。使用场景:1.修饰方法,是方法可以像属性一样访问class DataSet(object): @property def method_with_property(self): ##含有@property return 15原创 2022-01-29 11:24:50 · 79 阅读 · 0 评论 -
Gradient Descent 代码实现
import pandas as pdimport numpy as npimport matplotlib.pyplot as plt# create datanp.random.seed(0)n_sample = 100dis = np.random.rand(n_sample)acc = dis * 8 + np.random.random(n_sample) * 4my_data = {'distance': dis, 'accuracy': acc}data = pd.Da.原创 2022-01-27 13:57:54 · 1732 阅读 · 0 评论 -
采样数据-代码实现
在机器学习的过程中(教学中????),经常要举例子,造数据,这里专门整理一些采样数据的函数。1.构造自己的计算函数,以 为例import numpy as npdef true_function(x): return 2*np.exp(-x)*np.sin(x)2.采样数据从true_function中采样数据,并且添加噪声,噪声服从正态分布????∼????(0,????)def data_samples(): np.random.seed(0)原创 2022-01-26 11:31:02 · 1525 阅读 · 0 评论 -
Unicode 和 UTF-8 之间的关系
字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。一、ASCII 码我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为 ASC原创 2022-01-15 11:01:13 · 2559 阅读 · 0 评论 -
TypeError: `method` object is not subscriptable
我平平无奇的代码总有奇奇怪怪的错误错误很明显,就是mm.fit_transform[data]应该用括号但是第一次接触到subscriptable意思是方法不可以被使用下标在通俗一些,就是本来要使用()结果使用了[]...原创 2021-12-06 05:37:51 · 438 阅读 · 0 评论 -
爬虫乱码问题
趁周末爬了下小说,代码如下:import requestsfrom bs4 import BeautifulSoup#需求:爬取三国演义小说所有的章节标题和章节内容http://www.shicimingju.com/book/sanguoyanyi.htmlif __name__ == "__main__": #对首页的页面数据进行爬取 headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS原创 2021-12-05 12:00:26 · 422 阅读 · 0 评论 -
requests关于Exceeded 30 redirects
写了几行平平无奇的代码,想要获取json数据import requestsurl=‘https://image.baidu.com/search/acjson?tn=resultjson_com&logid=10924524703716171320&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E9%87%91%E5%9F%8E%E6%AD%A6&cl=2&lm=-1&ie=utf-原创 2021-10-30 22:13:46 · 1696 阅读 · 0 评论 -
__name__ == ‘__main__‘ 是什么意思
首先:__name__是指示当前py文件调用方式的方法。如果它等于"__main__"就表示是直接执行,如果不是,则用来被别的文件调用之所以常看见这样的写法,是因为该程序可能有“单独执行”(例如执行一些单元测试)与“被引用”两种情况,鉴于这两种情况中__name__的值是不同的:当一个模块被直接执行时,其__name__必然等于__main__;当一个模块被引用时,其__name__必然等于文件名(不含.py)。所以利用判断__name__ == '__main__'的真假就可以将这两种情况区分出来原创 2021-10-29 17:56:16 · 5244 阅读 · 1 评论 -
Python中 __init__的通俗解释
初学python,对与__init__方法和普通def name类方法产生了疑惑。既然都是类方法,为什么要多此一举写个__init__呢?当调用类时:只要其所在的类被实例化了,__init__方法就会被执行。相对的,我们都知道,类里面的方法,如果没有被调用到,它是不会被执行到的,而这个__init__方法却不需要明确调用即可被执行。1.使用__init__方法我们创建了一个叫做“人类”(Person)的类别,他有俩个必要属性(property):性别(gender..原创 2021-09-12 18:09:37 · 1261 阅读 · 1 评论 -
python数据分析--文件读写
import globimport pandas as pdfilelocation="F:\\" #在哪里搜索多个表格 fileform="xlsx" #当前文件夹下搜索的文件名后缀 #首先查找默认文件夹下有多少文档需要整合 filearray=[] for filename in glob.glob(filelocation+"*."+fileform): filearray.append(filename) #以上是从pythonsc.原创 2021-09-06 21:42:20 · 430 阅读 · 0 评论 -
python基础语法(一)
1.注解规则注释是指在程序代码中添加的标注性的文字。1.1单行注释单行注释以“#”开头,用于说明当前行或之后代码的功能。单行注释既可以单独占一行,也可以位于标识的代码之后,与标识的代码共占一行。1.2多行注释多行注释是由三对双引号或单引号包裹的语句Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须的相同类型的2.缩进规则代码缩进是指在每一行代码左端空出一定长度的空白,从而可以更加清...原创 2021-09-02 18:37:27 · 361 阅读 · 0 评论 -
python 下载安装
在下载Python之前我们要明确我们的开发环境的操作系统,这里我们选择Windows。Python下载步骤:Python安装步骤:测试安装是否成功:注意:如果输入python后,没有出现如图效果,而是显示“python”不是内部或外部命令,也不是可运行的程序或批处理文件,这时需要在系统环境变量中配置PythonPython编译器的使用安装Python时,会自动安装一个开发工具IDLE,这是一个自带的编译器,在编写代码时,会用不同的颜色显示代码。原创 2021-08-30 19:47:32 · 5874 阅读 · 2 评论 -
正则表达式
正则表达是用字符串操作的一种逻辑公式,相当于一个筛子。作用:1.给定字符串是否符合正则表达式的过滤逻辑2.可以通过正则表达式获取我们想要的特定部分场景:1.如何判断一个字符串是手机号呢?模块:re#例1. apple是否在字符串中import res='applebananacheery'result=re.match('apple',s) #match 是从头开始匹配,如果头不匹配,返回结果是none #如果不想从头原创 2021-08-18 14:27:34 · 66 阅读 · 0 评论 -
列表推导式
问题1:构建一个列表,将1—20的数字放在列表中#解决方案1list=[]for i in range(1,21): list.append(i)print(list)#用列表推导式list=[I for i in range(1,21)]问题2:构建一个列表,将0-100之间的偶数放在列表中list=[I for I in range(0,101) if I%2==0]问题3:打印一个混合列表中,所有的单词list1=[1,'hi',2,'hello',原创 2021-08-17 19:24:41 · 518 阅读 · 0 评论 -
python基础练习
print#格式化输出age=10print(“我今年%d岁”%age) #d代表要占位的是数字age+=1print(“我今年%岁”%age)age=18print(“我的名字是%s,我的国籍是%s”%(“小张”,“中国”))import syssgs = sys.getsizeofll = ['short', 'int', 'long', 'long long']for x in ll: print('The size of {} is {} bytes.原创 2021-07-18 21:56:45 · 66 阅读 · 0 评论 -
Errors
seaborn-加载资源数据拒绝连接问题 问题描述:seaborn中的load_dataset()方法可以直接加载一些线上提供的数据集,但是运行时报如下错误:原因:seabor_data 文件夹是空的,没有数据解决方案:从GitHub上将数据集下载至seaborn文件夹中https://codechina.csdn.net/mirrors/mwaskom/seaborn-data?utm_source=csdn_github_accelerator放入seaborn-dat...原创 2021-07-09 14:44:18 · 197 阅读 · 0 评论 -
列表生成式
列表生成式:python内置非常简单却强大的可以用来创建list的生成式,列表生成式也可以叫做列表解析。 列表生成式的格式:[ expression for i in 序列 if …] == 表达式+循环+条件 运用列表生成式,可以写出非常简洁的代码。一般情况下循环太繁琐,而列表生成式则可以用一行语句代替多行循环生成列表。练习1. 生成一个列表,列表元素分别为 [1*1,2*2,3*3……n*n],假设n = 10。一般方法实现代码如下:Lis1=[]for i in range(1,原创 2021-07-08 10:55:53 · 1606 阅读 · 0 评论 -
分组与聚合
Dataframe.groupby(key,as_index=False)key:分组的列数据,可以多个抛开聚合谈分组是没有意义的,只会返回对象案例col=pd.DataFrame({'color':['white','red','green','red','green'],'object':['pen','pencil','pen','pencil','ashtray']})#分组,求平均值col.groupby(['color'], as_index=False/True)['原创 2021-07-07 22:05:56 · 299 阅读 · 0 评论 -
交叉表和透视表
交叉表: 用于计算一列数据对于另一列数据的分组个数(用于统计分组频率的特殊透视表)pd.crosstab(value1,value2) 透视表:将原有的dataframe的列分别作为行索引和列索引,然后对指定的列应用聚集函数 data.pivot_table()探究股票的涨跌与星期几有关?以下图当中表示,week代表星期几,1、0代表这一天股票的涨跌幅是好还是坏,里面的数据代表比例案例分析1.数据准备...原创 2021-07-07 19:07:28 · 1348 阅读 · 0 评论 -
数据表的合并
objective应用pd.concat实现数据的合并 应用pd.merge实现数据的合并 #pd.concatnewdata=pd.concat([data1,data2],axis=1) #axis=0行索引,axis=1列索引 ps:没有指定how, 默认是inner原创 2021-07-07 16:57:47 · 100 阅读 · 0 评论 -
数据离散化
Objective应用cut、qcut实现数据分组 应用get_dummies实现数据的one-hot编码1.为什么要离散化连续属性的离散化为了简化数据结构2.什么是数据的离散化连续属性的离散化就是在连续属性的值域上,将值域划分为若干个区间,最后用不同的符号或整数值代表落在每个子区间中的属性值。3.使用工具pd.qcut(data,q) 对数据进行分组,一般会与value_counts搭配使用,统计每组的个数 series.value_counts(): 统计分组次数 ..原创 2021-07-07 16:31:02 · 676 阅读 · 0 评论 -
缺失值处理
objective应用isnull判断是否有缺失数据NaN 应用fullnull实现缺失值的填充 应用dropna实现缺失值的删除 应用replace实现数据的替换1. 如何处理nan获取缺失值的标记方式(NaN或者其他标记方式) 如果缺失值的标记方式是NaN: #判断数据中是否包含NaNpd.isnull(data)pd.notnull(data) #存在缺失值NaN1.删除缺失值的:dropna(axis='rows') #不会修改原数据,需要接受...原创 2021-07-07 11:47:45 · 273 阅读 · 0 评论 -
python文件读取
pandas文件读取我们的数据大部分存在于文件当中,所以pandas会支持负责的IO操作,pandas的API支持众多的文件格式,如CSV,SQL,XLS,JSON,HDF5例如:1. CSV1.1 read_csvpandas.read_csv(filepath_or_buffer,sep=',')filepath_or_buffer:文件路径import os os.getcwd() #获取当前工作路径 usecols:指定读取的列名,列表形式 (data=pd原创 2021-07-07 09:40:45 · 160 阅读 · 0 评论 -
lambda
why lambda?在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数。先举一个例子:将一个列表里的每个元素都平方。先用def来定义函数,代码如下def sq(x): return x*xmap(sq,[y for y in range(10)])再用lambda函数来编写代码map(lambda x: x*x,[y for y in range(10)])从这个简单的例子,我们可以看出,用lambda函数首先减少了代码的冗原创 2021-06-28 19:00:43 · 117 阅读 · 0 评论 -
python学习笔记
python DataFrame,如何让第一列作为行索引?问题场景如下:拿到一个npz的数据集首先导入:data=np.load('/Users/zhangtong/Desktop/国民经济核算季度数据.npz',allow_pickle=True)再查看数据集data.filesout:['columns','values']并将数据构造成DataFramename=data['columns']values=data['values']newdata=pd.DataFrame(原创 2021-04-24 21:43:11 · 1356 阅读 · 0 评论