Python
文章平均质量分 62
littlehaes
这个作者很懒,什么都没留下…
展开
-
ERROR: After October 2020 you may experience errors when installing or updating packages
问题描述: 使用pip安装模块时报错: ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts. We recommend you use --use-feature=2020-resolver to test your packa原创 2020-08-20 11:48:38 · 16069 阅读 · 3 评论 -
python去掉自定义异常中的__main__
问题描述: 自定义了一个异常类, 但是抛出该异常时前面总有个__main__自定义的异常类:class NoOutputError(Exception): """description.""" def __str__(self): return "Current target has no outputs"主动抛出该异常raise NoOutputError显示的结果中有个__main__, 想着去掉去掉异常信息中__main__的方法: 针对Pytho原创 2020-08-04 10:28:33 · 590 阅读 · 0 评论 -
gensim ImportError: cannot import name ‘open‘
问题描述: 执行import gensim时报错:from smart_open import open ImportError: cannot import name 'open'解决方法: 重新安装smart_openpip uninstall smart_openpip install smart_open原创 2020-08-04 09:33:44 · 1966 阅读 · 0 评论 -
cannot import name joblib from sklearn.externals
welcome to my blog使用scikit-learn跑一个两年前的案例, 报错:cannot import name ‘joblib’ from ‘sklearn.externals’原因: scikit-learn版本太新了, 回退版本即可解决方法:删除当前版本的scikit-learn pip uninstall scikit-learn安装旧版本的scikit-learn pip install scikit-learn==0.20.3...原创 2020-06-24 22:28:02 · 25619 阅读 · 9 评论 -
spacy模块报错bad escape \p at position 257
welcome to my blog问题描述: 导入spacy模块后, 执行nlp = spacy.load('en_core_web_sm')报错, 错误信息Traceback (most recent call last): File "C:\Users\50657\miniconda3\envs\han\lib\sre_parse.py", line 924, in parse p = _parse_sub(source, pattern, flags & SRE_FLAG_V原创 2020-06-08 17:06:39 · 2582 阅读 · 0 评论 -
Cant find model en_core_web_sm
welcome to my blog问题描述: 执行nlp = spacy.load('en_core_web_sm')报错:[E050] Can’t find model ‘en_core_web_sm’. It doesn’t seem to be a shortcut link, a Python package or a valid path to a data directory.解决方法: 在命令行中执行python -m spacy download en_core_web_sm即可原创 2020-06-08 16:39:36 · 3456 阅读 · 1 评论 -
pip使用清华源加速下载
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名比如pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jupyter清华源的pypi镜像每5分钟更新一次, 所以使用清华源下载的几乎都是最新版本的轮子原创 2020-06-03 16:33:50 · 1820 阅读 · 0 评论 -
pandas df.loc df.iloc 区别
welcome to my blogdf.loc是通过名字访问行或者列df.iloc是通过索引访问行或者列, 所以df.iloc只能跟整数举个例子import numpy as npimport pandas as pds = pd.Series(data=np.nan, index=[49, 48, 47, 46, 45, 1, 2, 3, 4, 5])s'''49 NaN...原创 2020-01-26 23:06:23 · 2440 阅读 · 0 评论 -
Object of type int32 is not JSON serializable
问题描述: 使用json.dump(dict,f)时报错, Object of type int32 is not JSON serializable问题原因:json不能序列化int32类型的数据解决方法: 将相关的数据转成float类型即可...原创 2020-01-20 18:09:14 · 4407 阅读 · 0 评论 -
python 字符串时间带有月份简写 星期简写 时区, 格式化为其他样式
welcome to my blogt = "Thu Oct 14 10:31:21 +0000 2010"# 将字符串解析为时间元祖# %a星期简写 %b月份简写 %d日期 %H小时 %M分钟 %S秒 %z时区 %Y年份t = time.strptime(t,"%a %b %d %H:%M:%S %z %Y")print(t)# 将时间元组格式化为指定的样式t = time.str...原创 2020-01-09 12:04:48 · 2756 阅读 · 0 评论 -
pandas按照某一列的值排序 按照多列的值排序
welcome to my blog按照某一列排序d = {'A': [3, 6, 6, 7, 9], 'B': [2, 5, 8, 0, 0]}df = pd.DataFrame(data=d)print('排序前:\n', df)'''排序前: A B0 3 21 6 52 6 83 7 04 9 0'''res = df.sort_val...原创 2020-01-09 09:45:51 · 30359 阅读 · 1 评论 -
python 字符串时间转成时间戳
welcome to my blogt = "2020-10-31 12:44:27"# 将字符串形式的时间转换为时间元组t = time.strptime(t, "%Y-%m-%d %H:%M:%S")# 将时间元组转换为时间戳t = time.mktime(t)# 1604119467.0print(t)...原创 2020-01-08 15:24:11 · 5302 阅读 · 0 评论 -
python 根据字符串时间获取时间差 根据时间戳获取时间差
welcome to my blog问题描述: 需要根据两个时间戳获取时间差; 需要根据两个字符串时间获取时间差解决方法:根据字符串时间获取时间差from datetime import datetime# 字符串格式的时间t1 = "2019-08-09 10:16:31"# 将时间转成datetime.datetime类t1 = datetime.strptime(t1, "%...原创 2020-01-08 10:48:59 · 4317 阅读 · 0 评论 -
python 时间戳转为字符串时间 转为指定的显示样式
welcome to my blog问题描述: 看不懂时间戳, 需要转成日常使用的时间格式解决方法import time#时间戳t1 = 1336651555#提取出时间戳中的年月日等时间信息t1 = time.localtime(t1)#按照指定的格式打印时间戳对应的时间# %Y %m %d %H %M %S分别表示年月日时分秒t1 = time.strftime("%Y-%...原创 2020-01-08 10:27:39 · 440 阅读 · 0 评论 -
成功解决 ImportError: No module named 'cPickle'
welcome to my blog问题描述: python3执行import cPickle as pickle报错:ImportError: No module named ‘cPickle’原因: python3没有cPickle模块解决方法: 直接导入pickle, 即import pickle...原创 2019-12-24 14:52:36 · 2547 阅读 · 0 评论 -
成功解决 pytorch 向量归一化, 向量除以模长
welcome to my blog问题描述: 想对向量归一化, 或者说 让向量除以模长解决方法, 看示例import torchimport torch.nn.functional as Fa = torch.arange(9, dtype= torch.float)a = a.reshape((3,3))print(a)'''tensor([[0., 1., 2.], ...原创 2019-12-18 10:44:38 · 19867 阅读 · 0 评论 -
/pytorch/aten/src/THCUNN/ClassNLLCriterion.cu:106: void cunn_ClassNLLCriterion_updateOutput_kernel(D
welcome to my blog头一次使用pytorch, 调用交叉熵损失函数nn.CrossEntropyLoss()的时候报错/pytorch/aten/src/THCUNN/ClassNLLCriterion.cu:106: void cunn_ClassNLLCriterion_updateOutput_kernel(Dtype *, Dtype *, Dtype *, long ...原创 2019-10-29 18:50:05 · 11628 阅读 · 2 评论 -
成功解决 python 将稀疏矩阵转换成普通矩阵
调用todense()方法即可, 如下面的示例, b是一个稀疏矩阵, 使用todense()方法将稀疏矩阵b转换成稠密矩阵cimport scipy.sparse as spimport numpy as npa = np.array([[0,3,2],[0,4,5],[1,3,6],[1,5,7],[2,4,10]])b = sp.coo_matrix(arg1=(a[:, 2], ...原创 2019-12-13 11:07:25 · 15472 阅读 · 2 评论 -
成功解决 pandas调整列的顺序
welcome to my blog只需三步, 见注释# 第一步,获取列名col = list(df.columns)# 第二步, 手动调整列名顺序# 比如列名是col=['aa','bb','cc']# 手动调整列名顺序后 col2 = ['bb','cc','aa']#第三步,调整df的列的顺序df = df[col2]...原创 2019-12-11 19:27:27 · 4252 阅读 · 0 评论 -
python删除文件夹
welcome to my blog在Linux下删除非空的文件夹, 可以使用os模块的system()方法使用该方法要小心! 小心! 小心! 别写错路径, 误删文件就麻烦了!os.system('rm -rf 文件夹路径')...原创 2019-12-09 21:19:03 · 426 阅读 · 1 评论 -
pandas 追加写入数据
welcome to my blog.to_csv()中指定mode参数为’a’即可向文件中追加写入内容df.to_csv(file_name, mode='a')原创 2019-12-09 21:13:58 · 4580 阅读 · 0 评论 -
python获取日期
welcome to my blog使用time模块的strftime()方法, 分割符可以自己定, 比如-, :, 空格import timet = time.strftime("%Y-%m-%d %H:%M:%S")print(t)'''输出:2019-12-09 20:02:14'''strftime()中各个字母的含义 年 %Y Year with centur...原创 2019-12-09 20:06:12 · 201 阅读 · 0 评论 -
python限制参数类型
welcome to my blogpython3.5支持限制参数类型了下面的示例表示,name需要是str类型的, greeting()的返回值是str类型的def greeting(name: str) -> str: return 'Hello ' + name官方文档链接...原创 2019-12-09 17:34:15 · 14960 阅读 · 0 评论 -
python打印多个列表的所有组合
welcome to my blog问题:比如有两个列表, a=[1,2,3], b = [‘q’,‘w’], a和b元素的所有组合为[[1,‘q’], [1,‘w’],[2,‘q’], [2,‘w’],[3,‘q’], [4,‘w’]], 那么如果有多个列表, 该如何获取所有列表的组合呢?方法一, 使用itertools模块import itertoolsa = [1, 2, 3]b...原创 2019-12-09 17:24:55 · 6286 阅读 · 0 评论 -
pandas统计某一列中各个值的出现次数
比如要统计’label’这一列各个值出现的次数, 使用df_train.loc[:,'label'].value_counts()即可原创 2019-11-11 18:09:35 · 113415 阅读 · 9 评论 -
python实现并查集
welcome to my blog并查集python版本class UnionFindSet(object): def __init__(self, nodes): ''' 初始化并查集 :param nodes: 传入的数据 ''' # 记录每个节点的父节点 self.fath...原创 2019-11-06 17:22:37 · 2181 阅读 · 0 评论 -
‘dict_keys' object does not support indexing
welcome to my blogpython3中dict.keys()的返回值类型是dict_keys, 不支持直接按照索引操作, 可以将结果转成list, 再用索引操作d = {'a':1, 'b':2, 'c':3}res = list(d.keys())res[0] # 'a'...原创 2019-10-21 18:18:47 · 636 阅读 · 0 评论 -
手动启动ipython
welcome to my blog安装了ipython后, 命令行/终端无法直接执行ipython命令的情况下, 此时可以手动启动ipython方法一在命令行输入python, 进入交互模式, 然后运行以下两行代码from IPython import embedembed()方法二直接在命令行输入python -c "from IPython import embed; emb...原创 2019-10-20 12:02:53 · 1451 阅读 · 2 评论 -
加载pickle文件报错ModuleNotFoundError: No module named numpy.core.multiarray
welcome to my blog查阅网上的资料, 很多人都是升级numpy后解决的问题, 但是我尝试了各种版本的numpy都不行, 一直抱这个错误, 最终在这个提示下终于发现了问题, 希望能够帮助大家错误原因: 别人在windows下使用pickle.dump(obj, 'filename', 'w')生成的pickle文件, 我在linux下读取这个文件'w’这种模式下, python...原创 2019-10-19 22:48:21 · 8804 阅读 · 0 评论 -
pickle模块报错TypeError: a bytes-like object is required, not 'str'
welcome to my blog错误信息使用python的pickle模块加载pickle文件报错: TypeError: a bytes-like object is required, not ‘str’错误代码如下with open('train_id.pickle', 'r') as f: pickle.load(file=f)原因python3中pickle模块...原创 2019-10-19 22:31:31 · 1945 阅读 · 0 评论 -
python多进程获取函数返回值
welcome to my blog创建进程的方式有两种, 1.封装一个类, 并让该类继承multiprocessing.Process类 2.将方法名和参数传给multiprocessing.Process()的构造函数;每个进程都有一套自己的内存, 所以在子进程中创建的list或者dict没法直接传回子进程, 只能用多进程模块提供的队列或者管道import multiprocessing...原创 2019-10-18 15:40:59 · 9470 阅读 · 3 评论 -
python多线程获取函数返回值
welcome to my blog创建线程的方式有两种, 1.封装一个类, 并让该类继承threading.Thread类 2.将方法名和参数传给Thread()的构造函数;封装成类可以获取子线程的返回值具体例子: 用4个线程分别计算4个列表中元素的平方值import threadingimport randomclass MyClass(threading.Thread):...原创 2019-10-18 15:13:25 · 2273 阅读 · 0 评论 -
python调用linux命令
welcome to my blog使用os模块的system()方法import osos.system('ls')os.system('pwd')细节python官方文档说, os.system(command)会在一个子进程中执行command, 所以没法更改当前主程序的环境变量换句话说, os.system(command)执行command的效果相当于重新打开一个终端, ...原创 2019-10-17 11:51:38 · 1374 阅读 · 0 评论 -
json.decoder.JSONDecodeError: Invalid \escape解决方案
welcome to my blog使用json.loads(str)报错: json.decoder.JSONDecodeError: Invalid \escape因为我用的str中包含反斜线, 去掉之后再用json.loads(str)就可以了s = {"id":"2261", "text":"#李宇春奥迪之夜#我葱巨美~~~今天现场的灯牌实在是太BH咯~~\(≧▽≦)/~啦啦啦人贩子...原创 2019-10-14 17:06:27 · 20213 阅读 · 0 评论 -
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes解决方案
welcome to my blog使用json.loads(str)时报错: json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes, 错误信息说: 希望key的名字用双引号括起来, 所以把字符串中的单引号替换成双引号, 然后再调用json.loads(str)就可以了!...原创 2019-10-14 15:52:36 · 7475 阅读 · 2 评论 -
Python技巧:List,Tuple,Dict,Set
Welcome To My Blog 自己最近主要是用Python,还不是很扎实,学习了程序员硕的Python高效编程技巧实战,讲得很好,感觉受益匪浅,故分享一下心得一.在列表List,字典Dict,集合Set中根据条件筛选数据使用各自的生成式即可 产生相同的列表,列表表达式速度比过滤函数快!!将近一倍. 这两种方法都远远快于for循环 过滤函数定义: filter(functi...原创 2018-03-14 22:32:54 · 362 阅读 · 0 评论 -
Python技巧:字符串处理
Welcome To My Blog一.拆分含有多种分隔符的字符串使用.split() 注意list.extend() append是把整个扩充列表作为一个元素追加到列表最后,而Extend则是把每个元素都作为一个独立的元素扩充到原来的列表s = 'liio;15176|0.0\\0.0,522,65,228,72:p|ts/11+R+'def mySplit(s,ds):...原创 2018-03-14 23:44:28 · 554 阅读 · 0 评论 -
Python2.7编解码问题总结
最近颇受编码问题困扰,所以稍作总结,附以代码说明 为什么需要编解码? 字符串以unicode的形式存在于内存中 ,但是unicode只是规定如何编码,并没有规定如何保存、传输这个编码,也就是说unicode不能直接写入文件或者在网络上传输,所以得通过某种编码使unicode变成连续的字节(bytes),同样地,对读入的数据解码,以unicode形式存在于内存中. 举例来说,在写pyth...原创 2018-02-11 23:43:33 · 538 阅读 · 0 评论 -
matplotlib显示中文(解决UserWarning: findfont: Font family)
安装了Anaconda3,学着用matplotlib,发现不能显示中文,查阅了网上的方法,对matplotlibrc中的font.family各种改,但Jupyter Noterbook依旧显示UserWarning: findfont: Font family 最终找到解决方法,操作很简单: 在.matplotlib(图一)这个目录里,注意文件夹名字最前面是个点,有个叫fontList.js...原创 2018-02-09 20:56:19 · 13073 阅读 · 5 评论 -
python3两个range()相加
python2中,range()返回的是list,可以将两个range()直接相加,如range(10)+range(15) python3中,range()成了一个class,不可以直接将两个range()直接相加,需要先加个list,如list(range(10))+list(range(10)) 因为python3中的range()为节省内存,仅仅存储了range()的start,sto...原创 2018-09-07 08:54:46 · 9714 阅读 · 0 评论