
python
文章平均质量分 53
得克特
深度学习 python
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
parser.add_argument bool类型参数设置
ArgumentParser在传布尔类型变量时,传入参数按字符串处理,所以无论传入什么值,参数值都为True。import argparseparser = argparse.ArgumentParser()parser.add_argument("--t1", default=False, type=bool)parser.add_argument("--t2", default=False, action='store_true')args = parser.parse_args()pr原创 2022-03-18 19:55:48 · 3409 阅读 · 0 评论 -
解决UnicodeDecodeError: ‘utf-8‘ codec can‘t decode : invalid continuation byte
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xed in position 4249: invalid continuation byte比较烦人的问题,用notepad打开显示’utf-8’,但是还是不行df = pd.read_csv(r'...\11-23.txt',header=None, sep='\t',encoding='utf8')UnicodeDecodeError: 'utf-8' codec can't decode原创 2021-11-23 16:55:28 · 12295 阅读 · 0 评论 -
装饰器与闭包
变量作用域在完成一个题目:利用带参数的装饰器限制函数执行的次数我遇到一个很疑惑的问题,可以简化如下:>>>a = 1def test(): print(a)>>>test()1然而,当改为如下形式>>>a = 1def test(): print(a) a -= 1>>>test()1会报错 UnboundLocalError: local variable 'a' reference原创 2021-10-12 00:13:24 · 101 阅读 · 0 评论 -
pandas 一列转多行
我们常有这样一个需求,把一列的值分割扩展为多行>>>x = pd.DataFrame({1:range(4), 2:range(4,8), 3:[str(_) + ',' + str(_) for _ in range(8,12)]}) 1 2 30 0 4 8,81 1 5 9,92 2 6 10,103 3 7 11,11转为如下形式>>>x.drop(3,axis=1).join(x[3].str.原创 2021-09-08 20:47:18 · 716 阅读 · 0 评论 -
numpy和pytorch利用视图生成新对象
我们知道,numpy的array和torch的tensor在很多方面性质一样,这里以array举例,生成一个新的试图。通常而言,我们利用视图生成新的array时,每个维度对应的索引数是必须要相同,类似>>>import numpy as np>>>x = np.arange(60).reshape((3,4,5))>>>x[[1,2],[2,3],[3,4]]array([33, 59])如果索引数不同,则会出错>>>原创 2021-09-01 19:40:03 · 141 阅读 · 0 评论 -
Anaconda 多用户安装
root用户安装Anaconda,安装目录选择/opt/anaconda创建anaconda用户组 sudo groupadd anaconda将Anaconda安装的整个文件夹的组拥有者设为anaconda sudo chgrp -R anaconda /opt/anaconda修改安装的文件夹的权限 sudo chmod 770 -R /opt/anaconda把需要的用户添加进组 sudo usermod -a G user anaconda,这样组用户拥有了安装包与创建虚拟环境的权利关.原创 2021-05-19 19:16:02 · 784 阅读 · 0 评论 -
py2: str和unicode
unicode和utf8Unicode 是「字符集」字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point)UTF-8 是「编码规则」编码规则:将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)Unicode 字符集为每一个字符分配一个码位,例如「知」的码位是 30693,记作 U+77E5或\u77e5(30693 的十六进制为 0x77E5)。UTF8编码做的是将对应的码位编码到字节序列。U+ 0000 ~ U+ 007F:原创 2021-04-16 15:30:50 · 577 阅读 · 0 评论 -
python 小技巧
for elsefor else主要是看for循环里是否有满足条件的情况,如果没有执行break,肯定会执行elsefor i in range(3): if i==3: print(i) breakelse: print("else")>>elsefor i in range(3): if i==2: print(i) breakelse: print("else")>>原创 2021-01-08 16:05:34 · 73 阅读 · 0 评论 -
csr_matrix矩阵
csr采用按行压缩的方法,将原始的矩阵用三个数组表示:三个数组的形式有两种第一种from scipy.sparse import *row = [0,0,0,1,1,1,2,2,2]#行索引col = [0,1,2,0,1,2,0,1,2]#列索引data = [1,0,1,0,1,1,1,1,0]#对应值t = csr_matrix((data,(row,col)),shape=(3,3))print(t)print(t.todense())>> (0, 0) 1原创 2020-12-25 14:49:10 · 2965 阅读 · 0 评论 -
itertools.chain()
itertools.chain()可以对多个容器的不同对象做循环迭代,例如x = [1,2,3,4]y = ['1','2','3','4']for x in chain(x,y): print(x)12341234或者x = [1,2,3,4]y = ['1','2','3','4']for x in chain(*[x,y]): print(x)12341234接触这个是在看item_base的代码,有这样一行row_ind, col_ind =原创 2020-12-21 21:35:54 · 4877 阅读 · 0 评论 -
python format 对齐打印的方式
format对齐打印下面两种方式均可,个人比较倾向于第二种:<{} 左对齐 :^{} 中间对齐 :>{} 右对齐对齐符号后面的{}表示变量的总宽度print("{:<{}} {:<{}} {:<{}}".format("yifu",25, "chenyichenyi",50, 0.23655,20))yifu chenyichenyi 0.2365原创 2020-09-09 16:48:21 · 1696 阅读 · 1 评论 -
docker创建python容器环境
官方镜像如果你对于系统没有要求,可以直接拉取官方的镜像docker pull python:3.7.7-slim-buster这个镜像只有100多m,debian的系统。当然也有不含操作系统的镜像,只有几十m指定操作系统由于我对操作系统有要求,这里我拉取的是ubuntu18.04的系统docker pull ubuntu:18.04运行,这里我指定了宿主机一个文件夹作为容器的外部卷,里面放入了我下载号的python安装文件docker run -dit -v /home/ncste/do原创 2020-06-29 18:14:36 · 2522 阅读 · 0 评论 -
python读取二进制文件 \xff\xfe \xef\xbb\xbf
读取二进制文件编码是一个比较麻烦的事情我们在decode二进制文件时,是需要知道编码格式的,除了常见的utf-8,还有UCS-2-Little Endian(utf-16-le)和UTF-8-BOM(utf-8-sig)如下是UCS-2-Little Endian的二进制文件前缀如下是UTF-8-BOM的二进制文件前缀做个判断,确定decode解码格式if b'\xff\xfe'in res['bdata']: print('UCS-2-Little Endian') s =原创 2020-06-24 15:45:26 · 6439 阅读 · 0 评论 -
python将图片生成二进制的两种方式(java读取)
文章目录tobytes()生成带格式的二进制以程序中生成的词云图为例(方便测试,我把生成图片调小了)wc = WordCloud(font_path=font_path, scale=1, collocations=False, background_color='white', width=40, height=30) # mask=back_coloringwc.generate_from_frequencies(count_dict)img =原创 2020-06-16 11:04:24 · 2539 阅读 · 0 评论 -
词云生成工具wordcloud中文显示
wordcloud主要的使用就是下面三行代码from wordcloud import WordCloudwc = WordCloud(font_path=font_path, scale=1, collocations=False, background_color='white', width=400, height=300)wc.generate_from_frequencies(count_dict) # 这里传入的是一个词频字典,也可以传入分好词的字符串img = wc.to_image原创 2020-06-05 16:27:39 · 1528 阅读 · 0 评论 -
python 装饰器
回顾了廖老师的装饰器的教程,记录一下本质上,装饰器就是一个返回函数的高阶函数。所以,我们要定义一个能打印日志的decorator,可以定义如下:def log(func): def wrapper(*args, **kw): print('call %s():' % func.__name__) return func(*args, **kw) return wrapper @logdef now(): print('2015-3-25原创 2020-05-27 15:33:24 · 379 阅读 · 0 评论 -
anaconda设置默认的启动环境
有时候我们希望命令行启动的python是自定义的,而不是base或者root的,linux设置如下在linux下,通过修改~/.bashrc或~/.bash_profile最后你会发现export PATH="~/anaconda/envs/your_env_name/bin:$PATH" # your_env_name是你自定义的环境名还有的时候,你希望命令行默认激活你想要的环境,linux设置如下修改~/.bashrc,添加conda activate your_env_name # "原创 2020-05-25 13:25:45 · 28944 阅读 · 2 评论 -
os.path.abspath()的奇怪事件
事情是我想将windows执行的一段程序迁到linux上调用root = os.path.abspath(__file__)cf_path = os.path.join(root,'..', 'config.cfg')这段在windows执行是没问题的,在linux执行读取不到,于是我换了root = os.path.dirname(__file__)cf_path = os.path...原创 2020-05-07 10:50:00 · 608 阅读 · 0 评论 -
Python for循环与c++的区别
记录一个小细节,Python的for循环,循环中对i的改变是不影响循环过程的for i in range(10): if i%2==0: i += 1 print(i)1 1 3 3 5 5 7 7 9 9这一点与c++等语言是不同的,这种情况就用while吧...原创 2020-04-27 09:08:08 · 2333 阅读 · 0 评论 -
python读取和写入mysql
导入依赖包import pymysqlimport pandas as pdimport numpy as npfrom sqlalchemy import create_enginefrom sqlalchemy.types import NVARCHAR, Float, Integer连接mysql如果是要读取,有两种方式连接mysql方法一def sql_connect(...原创 2020-01-16 11:25:51 · 1592 阅读 · 0 评论 -
pandas pivot实现行转列
pivot_table实现行转列pivot_table函数样例pivot_table透视表是一种可以对数据动态排布并且分类汇总的表格格式。或许大多数人都在Excel使用过数据透视表,也体会到它的强大功能,而在pandas中它被称作pivot_table。其实际上是建立层次化索引。函数pivot_table(data, values=None, index=None, columns=Non...原创 2020-01-16 11:10:08 · 3374 阅读 · 0 评论 -
pd drop_duplicates返回结果count和to_csv的结果不一致
目的是从表中找出不重复的公司个数,一开始采用了drop_duplicates获取一个去重后的表,count()后发现是500多家,神奇的是当我将结果导入csv,发现只有不到100条。然后我采用groupby的方式获取分组结果,发现分组后的公司确实是500多家,导入csv与count的结果是一致的,这里记录一下,还没有解决。...原创 2019-11-28 15:36:40 · 294 阅读 · 0 评论 -
Pandas 基础汇总
整理下今天用到的pandas的知识点:.count()获取数据的整体汇总.unique() drop_duplicateds(subset=[''])去重dropna(subset=[''])去空值.apply(lambda x: )对series的列做出计算等pd.merge(self,other how='',on='')合并两个表groupby('').agg({:}) grou...原创 2019-11-14 17:45:54 · 1293 阅读 · 0 评论 -
matplotlib使用文档(不断补充)
%matplotlib主要用于当我们在jupyter notebook使用plt画图,图像可以直接显示在代码单元格下面,生成的图也位于jupyter notebook中。Purpose of “%matplotlib inline”原创 2019-01-18 22:03:29 · 3081 阅读 · 0 评论 -
python 基础--类
文章目录面向对象编程--python 类类特殊的系统变量面向对象编程–python 类类特殊的系统变量slots = (‘name’, ‘age’) # 用tuple定义允许绑定的属性名称,注意此限制对子类不影响为了方便的调用属性,python提供了@property装饰器class Student(): @property # property修饰的函数可以使用属性,并且...原创 2019-01-09 16:06:28 · 230 阅读 · 0 评论 -
文件路径-相对路径和绝对路径
相对路径当处于当前文件夹时,我们只需要使用相对路径path1=os.path.abspath('.')绝对路径绝对路径就是完整的路径path2=os.path.abspath('..')原创 2019-02-05 22:27:47 · 873 阅读 · 0 评论 -
python多线程和多进程
多进程和多线程多任务的3种方式:多进程模式、多线程模式、多进程+多线程模式。多进程Unix/Linux操作系统提供了一个fork()系统调用,普通函数调用一次返回一次,但是fork()调用一次,返回两次,因为系统把当前进程(父进程)复制了一份(子进程),分别在父进程和子进程返回。import osfrom multiprocessing import Processprint('pro...原创 2019-02-12 23:30:35 · 169 阅读 · 0 评论 -
python 程序bug调试
ImportError: cannot import name ‘app’查看错误报告,这其实显示了我们程序的一圈循环调用,通过修改循环调用的解决方法python各个模块循环引用问题解决办法manage.py:8: in <module> app = create_app(os.getenv('FLASK_CONFIG') or 'default')app/__init_...原创 2019-07-30 11:09:12 · 382 阅读 · 0 评论 -
Pandas 基础学习
文章目录聚合groupbyagg聚合groupby此处参考pandas的聚合操作: groupyby与aggpandas提供基于行和列的聚合操作,groupby可理解为是基于行的,agg则是基于列的。从实现上看,groupby返回的是一个DataFrameGroupBy结构,这个结构必须调用聚合函数(如sum)之后,才会得到结构为Series的数据结果。而agg是DataFrame的直...原创 2019-07-31 10:24:09 · 160 阅读 · 0 评论 -
numpy基础
文章目录python numpy矩阵乘法linalg数组深复制与浅复制shuffle与permutation的区别np.padnp.linalg.norm--求范数np.expand_dimsnp.tileargsortdiagonal()np.nonzero()np.var和np.meannp.cov(m,y,rowvar=True,bias=False,ddof,frequency weigh...原创 2019-08-13 14:08:09 · 223 阅读 · 0 评论 -
Jupyter Notebook更换指定python内核
文章目录更换json文件安装ipykernel更换json文件通过命令行ipython kernelspec list获取当前使用的json配置文件地址,找到json文件。以下获取想要使用的内核路径,将该路径地址修改到json文件中的原内核地址。import sysprint(sys.executable)运行后发现jupyter notebook服务器报错no module nam...原创 2019-08-28 20:38:18 · 4522 阅读 · 1 评论 -
更换jupyter notebook界面风格以及方便python解释内核
切换午夜主题关于jupyterthemes的详细配置 可以点 git jupyterthemesconda activate base # install jupyterthemespip install jupyterthemespip install --upgrade jupyterthemesjt -t onedork -cellw 1400 # onedork为主题名字,c...原创 2019-09-01 16:17:55 · 2348 阅读 · 2 评论 -
Python 基础
注意:两个(1,3)或(3,1)的矩阵不能直接使用np.dot(),可以使用np.dot()有两种情况,一种是都是一维数组,另外一种是满足矩阵相乘的运算,因为他们不是一维数(3,),所以不能运算.#使用1a = np.array([1,2,3])np.dot(a,a)# 14#使用二b = a.reshape(1,3)c = a.reshape(3,1)np.dot(b,c)#Ou...原创 2019-01-12 13:58:52 · 429 阅读 · 0 评论