Python
Harry嗷
礼貌提问才会礼貌回答,伸手党勿扰!仅讨论知识,不帮人调bug哈。
展开
-
[debug] PyTorch报错:ConnectionResetError: [Errno 104] Connection reset by peer
问题描述:使用PyTorch 1.10.0,训练报错:ConnectionResetError: [Errno 104] Connection reset by peer问题解析参见pytorch的issueI believe the issue is only triggered for the case that bothpersistent_workers and pin_memory are turned on and iteration isterminated at the t原创 2022-01-22 21:07:00 · 11089 阅读 · 3 评论 -
[debug] RuntimeError: “nll_loss_forward_reduce_cuda_kernel_2d_index“ not implemented for ‘Int‘
问题描述在使用nn.CrossEntropyLoss时出现报错:loss_id = self.IDLoss(id_preds, id_targets)Traceback (most recent call last): File "/home/hgx/pycharm-2020.1.3/plugins/python/helpers/pydev/_pydevd_bundle/pydevd_exec2.py", line 3, in Exec exec(exp, global_vars, lo原创 2022-01-11 21:20:56 · 11980 阅读 · 4 评论 -
python 取列表(数组)偶数和奇数位置的值
python中的列表[]等于其他语言中的数组[]取列表索引取值,也就是列表的切片:list[i:j] 就是从列表的索引 i 到索引j 个的值;列表的索引第一位是从0开始的list[i:j:2] 一样取i 到 j 但加入了步长 这里步长为2;也就是取每次索引位置开始+2的值list[::2 ] 就是取奇数位 这里的 i j 我们省略的话就是默认数组最开头到结尾list[1::2] 这里缺省了j 但是i定义了1 也就是从数组第二个数开始取 ,所以这个是取偶数位...转载 2021-07-18 15:14:51 · 5002 阅读 · 0 评论 -
[Python+MATLAB] 在Python中使用MATLAB (持续更新中)
[Python+MATLAB] 在Python中使用MATLAB (持续更新中)使用Python能使用MATLAB的函数吗?答案是可以的!The MATLAB Engine API for Python provides a package for Python to call MATLAB as a computational engine. (官方网址:Calling MATLAB from Python)这真是一个人民群众喜闻乐见的好事情!至于为啥要在Python里调用MATLAB。这可真原创 2020-06-09 18:55:32 · 9087 阅读 · 2 评论 -
[python] 计算对数:numpy.log()和math.log()
numpy.log()和math.log()都可以进行对数运算。但math.log()只能对单个数值 (scalar) 进行运算,如果对数组运算则会报错:TypeError: only size-1 arrays can be converted to Python scalars而numpy.log()则可以对数组进行运算。建议还是用numpy.log(),少用math.log()。...原创 2020-05-05 14:54:12 · 10988 阅读 · 0 评论 -
[python] linspace():获取等间隔数组
linspace() 函数的官方文档:numpy.linspace语法:numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)[source]功能:返回指定间隔 [start stop] 内的均匀间隔的num个数字。示例:>>> np.linspace...转载 2020-05-05 11:53:47 · 3486 阅读 · 1 评论 -
[Python] 将两个列表合并为字典
先使用zip()函数将两个列表的对应项组合成元组,再使用dict()函数将其转化为字典。示例如下:import numpy as npa = np.array(['a', 'b', 'c', 'd'])b = np.array([2, 2, 4, 12])dict1 = dict(zip(a, b))# {'a': 2, 'b': 2, 'c': 4, 'd': 12}...原创 2020-03-23 10:45:12 · 1201 阅读 · 0 评论 -
[python + debug] set()操作对象的元素为字符串,则结果随机排序,使用sorted()函数以固定顺序
文章目录问题描述原因分析解决方式问题描述当我对数据集的字符串类型的label进行编码时,要使用set()函数来提取出所有类别的标签。这样做的结果是,我发现每次画出来的图,每次样本点的颜色都不一样。而颜色代表label,即每次编码得到的label都不一样。而这在统计数量的时候会出现麻烦。比如下面是两次编码的结果:{'Neural_Networks', 'Reinforcement_Lear...原创 2020-03-22 23:27:32 · 440 阅读 · 0 评论 -
[python] 字典:按key排序或按value排序
主要用到sorted(iteration, key=None, reverse=False)、lambda、reverse。代码如下:d = {'a': 1, 'c': 2, 'b': 3}# 按字典的key排序d_key_ordered = sorted(d.items(), key=lambda x: x[0], reverse=False) # 返回值为listd_key_...原创 2020-03-22 20:31:23 · 422 阅读 · 0 评论 -
[debug+Python] 复制字典不能直接用 ‘=’,要用dict_name.copy()
问题描述当我想要在函数中返回字典dict1,但是后续的操作还要改变dict1。即,字典的后续操作和字典的返回相矛盾。一个思路是,我再定义一个字典dict2,令其等于dict1。然后dict2用于后续更改,dict1作为返回值。即,返回和修改对不同的字典进行。bug描述我直接使用:dict2 = dict1然后dict1作为返回值,dict2用于函数内的后续修改。结果就发现,我对d...原创 2020-03-17 00:18:19 · 339 阅读 · 0 评论 -
[python] 字典 pop(key)函数:删除字典中key及其值,并返回该值
功能删除字典给定键 key 及对应的值,返回值为被删除的值。key 不在字典中,则返回 default 值。一般会在更新字典的时候用到。语法value_deleted = dict_name.pop(key[,default])key: 要删除的键值对中的键default: 如果没有字典中 key,返回 default 值...原创 2020-03-16 16:11:03 · 3660 阅读 · 0 评论 -
[python] 将一个序列的排序方式扩展到其他序列
文章目录问题描述解决方式语法示例问题描述很多时候一个样本对应多个属性。我们想要对全体样本一个属性A进行降序或升序排列,并希望其他属性作为整体,跟着属性A的位置变动一起动。比如下面的例子:样本1样本2样本3样本4属性A2143属性B4321我们希望对属性A进行降序排列,而属性B跟着属性A一起移动(即以样本为单位排序)。期望的排序结果如下...原创 2020-03-16 00:05:10 · 1309 阅读 · 0 评论 -
[Python] 绘制Python代码的函数调用关系:graphviz+pycallgraph
[Python] 绘制Python代码的函数调用关系:graphviz+pycallgraph文章目录[Python] 绘制Python代码的函数调用关系:graphviz+pycallgraph问题描述解决方案先上结果图:![在这里插入图片描述](https://img-blog.csdnimg.cn/20200312132019214.png?x-oss-process=image/wat...原创 2020-03-12 13:21:12 · 3717 阅读 · 3 评论 -
[Python+debug] 设置Python环境变量-Windows10
点开desktop,右键,点击属性。点击高级系统设置。点击环境变量复制要增加的环境变量选中要修改(增加)的环境变量,Path点击新建将要加入的路径,复制过来。然后点击确定。...原创 2020-03-12 11:34:43 · 1162 阅读 · 0 评论 -
[Python] 切片函数:silce()
[Python] 切片函数:silce()定义和用法slice() 函数返回 slice 对象(切片)。slice 对象用于对序列进行裁切。可以指定在哪里开始裁切以及在哪里结束裁切。还可以指定步进,例如只切每隔一个项目。语法和APIslice(start, end, step)其API如下:start:(optional,int) 指定裁切的起始位置。default = 0。...原创 2020-03-11 17:35:20 · 1299 阅读 · 0 评论 -
[Python] 字典 update()函数:在字典中更新 (或加入) 键值对
转载于:Python 字典(Dictionary) update()方法。语法:dict1.update(dict2)字典(Dictionary)的 update() 函数把字典dict2的键/值对更新到dict1里。对于dict2的键/值对,如果dict1中没有,则直接加入。如果dict1中已有,则用dict2中的键值对替代原有的键值对。...转载 2020-02-18 18:29:07 · 3529 阅读 · 0 评论 -
[转] 面向对象编程介绍
转自面向对象编程 - 廖雪峰的官方网站。博主写的确实确实很不错。标黄的字是我自己写的。面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数(对象的属性和方法)。面向过程的程序设计把计算机程序视为一系列的命令的集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分...转载 2019-08-08 11:06:42 · 117 阅读 · 0 评论 -
[转] 面向对象编程 - 获取对象信息
当我们拿到一个对象的引用时,如何知道这个对象是什么类型、有哪些方法呢?使用type()首先,我们来判断对象类型,使用type()函数:基本类型都可以用type()判断:>>> type(123)<type 'int'>>>> type('str')<type 'str'>>>> type(None)&l...转载 2019-08-08 23:33:27 · 145 阅读 · 0 评论 -
[转] 面向对象编程 - 继承和多态
在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印:class Animal(object): def run(self): ...转载 2019-08-08 22:37:40 · 112 阅读 · 0 评论 -
[转] 面向对象编程 - 访问限制
在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性:>>> bart = Student('Bart Simpson', 98)>>> bart.score98>>> ...转载 2019-08-08 21:26:11 · 122 阅读 · 0 评论 -
[Python+sklearn] 计算混淆矩阵 confusion_matrix()函数
python sklearn 计算混淆矩阵 confusion_matrix()函数参考sklearn官方文档:sklearn.metrics.confusion_matrix。功能:计算混淆矩阵,以评估分类的准确性。(关于混淆矩阵的含义,见:混淆矩阵(Confusion Matrix)。)语法:from sklearn.metrics import confusion_matrix...原创 2019-08-19 23:29:04 · 54850 阅读 · 7 评论 -
[Python+sklearn] 拆分数据集为训练和测试子集 sklearn.model_selection.train_test_split()
Python - sklearn 拆分数据集为训练和测试子集 sklearn.model_selection.train_test_split()功能:将数组或矩阵拆分为随机的训练子集和测试子集 。输入和输出:输入:arrays : 具有相同长度的可索引序列,x-y的映射(sequence of indexables with same length / shape[0])。t...原创 2019-08-21 17:11:16 · 2897 阅读 · 0 评论 -
kite:Python 代码自动补全神器
kite:Python 代码自动补全神器吃了 学习python的正确姿势 的安利:这个 Python 代码自动补全神器搞得我卧槽卧槽的。代码自动补全还是挺舒服的嘿嘿嘿。下面是官网下载给出的示例:下面是知乎的演示:以及有无kite的对比:还有对API的查看:...原创 2020-02-14 18:08:35 · 1922 阅读 · 0 评论 -
[Python+Anaconda] 查看Python、Anaconda下python、CUDA、函数库的版本
查看Python、Anaconda下Python、CUDA、函数库的版本前言第三方库(比如Pytorch)要依赖Python版本,CUDA版本,对于不同的版本组合,会有不同的安装命令。这就要求我们有方法去查看Python和CUDA版本。另外,第三方库还对于其他库的版本有要求,即所谓的依赖项。下面提供查看python、Anaconda下python、CUDA、函数库的版本的方法。原生P...原创 2020-01-17 16:45:58 · 6935 阅读 · 1 评论 -
[Python] 矩阵拼接 np.c_[a,b]和np.r_[a,b]
功能:将矩阵横向或纵向拼接np.c_[a,b] 将a, b看成单位,放置于不同的列。(左右合并)np.r_[a,b] 将a, b看成单位,放置于不同的行。(上下合并)示例:import numpy as np# 2维矩阵a = np.array([[1, 2, 3], [7, 8, 9]])# array([[1, 2, 3],# [7, 8, 9]])b =...原创 2019-08-30 18:56:55 · 598 阅读 · 0 评论 -
[Python] numpy库的简介和常用函数
原博客https://blog.csdn.net/a373595475/article/details/79580734numpy - 简介numpy 是一个 Python 包。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。numpy和matplotlib(绘图库)一起使用,可以替代matlab。numpy的对象 - ndarraynumpy 中最重要的对象为 “ndarr...原创 2019-06-23 21:57:10 · 251 阅读 · 0 评论 -
[Python] numpy.fliplr()和numpy.flipud() 数组的翻转
翻转数组 numpy.fliplr()和numpy.flipud()功能:numpy.fliplr():向左/向右翻转数组。numpy.flipud():向上/向下翻转数组。语法:numpy.fliplr(array)numpy.flipud(array)参数array:Input array, must be at least 2-D.示例:numpy.fliplr()&...原创 2019-08-30 19:33:13 · 2460 阅读 · 0 评论 -
[Python] random.uniform( ) 函数教程与实例解析
random.uniform( ) 函数教程与实例解析1. uniform() 函数说明random.uniform(x, y) 方法将随机生成一个实数,它在 [x,y] 范围内。2. uniform() 的语法与参数2.1 语法# _*_ coding: utf-8 _*_import randomrandom.uniform(x, y)或# _*_ coding: utf-...转载 2019-08-31 10:59:00 · 16594 阅读 · 5 评论 -
[Python] numpy.ndenumerate() 获得一对数组坐标和值
Python numpy.ndenumerate() 获得一对数组坐标和值功能:多维索引迭代器。返回一个迭代器,产生一对数组坐标和值。语法:numpy.ndenumerate(arr)输入和输出:输入:arr:Input array. ndarray类型。输出:一个多维索引迭代器,可以产生一对数组坐标和值。示例:>>> a = np.array([[...原创 2019-08-31 11:17:43 · 4298 阅读 · 0 评论 -
[Python] 关键字 yield 用法详解
一个十分十分优秀的博客:python中yield的用法详解——最简单,最清晰的解释。转载 2019-08-16 17:16:29 · 158 阅读 · 0 评论 -
[debug] 命令行窗口运行.py文件,报错"No module named XXX"
问题描述:在PyCharm中运行.py文件正常,在命令行运行.py文件报错"No module named XXX"原因分析说到底是搜索路径的问题。PyCharm中运行的时候,该项目文件中的其他文件可以被所运行文件调用。也就是说,系统的搜索路径包括。而在命令行窗口运行.py文件的时候,系统的搜索路径并不包括所运行项目文件夹所在的文件夹,于是出现No module named XXX的报错...原创 2019-08-04 15:52:16 · 2532 阅读 · 0 评论 -
[Python] 扁平化函数 ravel()和flatten()
功能:二者都是将n×m的矩阵,变为nm×1的行向量。建议使用flatten(),而不建议使用ravel()。因为在使用过程中flatten()分配了新的内存,但ravel()返回的是一个数组的视图。ravel()返回的视图,类似对数组的引用(说引用不太恰当,因为原数组和ravel()返回的数组的地址并不一样),故在使用过程会修改原数组。示例:import numpy as npa ...原创 2019-08-30 18:54:05 · 5053 阅读 · 4 评论 -
[Python] 堆叠函数 stack((a,b), axis=0)
参考的博客原文为 numpy.stack最通俗的理解,本人对其做了些整理。功能:根据axis的不同,对多个矩阵进行堆叠。axis参数的含义:axis指明了要增加哪一个维度。axis=0,增加第一维度。实际是不切开,两个堆一起。axis=1,增加第二维度。实际是横着切开,对应行横着堆。axis=2,增加第三维度。实际是竖着切开,对应行竖着堆。着重介绍堆叠的意思。示例和说...原创 2019-08-30 18:48:34 · 1596 阅读 · 0 评论 -
[Python] zeros(r, c)和ones(r, c)和eye(n) 生成特殊矩阵
功能:类型:numpy.ndarrayzeros(r, c)生成指定维度r×c的0矩阵。ones(r, c)生成指定维度r×c的1矩阵。eye(n)生成指定维度n×n的单位矩阵。示例:生成一个3*2的全0矩阵myMat1=np.zeros((3,2))print('zeros = \n',myMat1)# 运行结果为# zeros = # [[0. 0.]# [0...原创 2019-08-30 18:42:41 · 604 阅读 · 0 评论 -
[Python] 读取存储.mat数据 scipy.io.loadmat("FileName")和scipy.io.savemat('XXX.mat', {'x': x,'y': y,'z': z})
读取.mat数据scipy.io.loadmat("FilePath")功能:读取路径为"FilePath"的.mat文件,函数返回值为字典类型dict。之后还需要通过后续操作将值提取出来(字典操作来提取键值对的值)。关于为什么scipy.io.loadmat("FilePath")的结果是一个字典,这是因为一个.mat文件中存在多个变量,每一个变量名都对应相应的数据,也就是变量名和变量值...原创 2019-08-06 20:16:22 · 10918 阅读 · 0 评论 -
[Python] 字符串大写变小写 lower()函数
lower()功能:转换字符串中所有大写字符为小写。语法: str = str.lower()示例:str = ".JPG"str = str.lower()print(str)# .jpg原创 2019-08-06 17:19:03 · 1456 阅读 · 0 评论 -
[Python] os.path.splitext("path"):分离文件名与扩展名
功能:输入为"文件路径",输出为文件名和扩展名的元组(文件名,扩展名)最重要的功能是获得文件的扩展名,从而识别文件的格式。语法:import osFileName,ExtensionName = os.path.splitext("path")# 当只需要ExtensionName的时候可以这样写:_,ExtensionName = os.path.splitext("path"...原创 2019-08-06 17:13:51 · 3889 阅读 · 0 评论 -
[转] 面向对象编程 - 类和实例
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。仍以Student类为例,在Python中,定义类是通过class关键字:class Student(object): passclass后面紧接着是类名,即Student,类...转载 2019-08-08 13:40:17 · 213 阅读 · 0 评论 -
[python+pip] 使用pip将函数库安装到Python环境或Anaconda环境
Python函数库的安装方式优先级1:pip安装或conda安装优先级2:库的自定义安装优先级3:库的文件安装(.whl文件)下面介绍pip的使用两个pip在下载Anaconda之前,python自己就有一个pip,通过这个pip下载的函数库会储存到它相应的路径,我们称为路径1,对应的是Python的环境。在下载Anaconda之后,通过conda下载的函数库会储存到conda的...原创 2019-08-06 00:52:03 · 5346 阅读 · 2 评论 -
[Python] argparse命令行解析器的使用
参考了python文档argparse- 用于命令行选项,参数和子命令的解析器和一篇非常非常优秀的博客python命令行解析模块argpars。该argparse模块可以轻松编写用户友好的命令行界面。该程序定义了它需要的参数,argparse 并将弄清楚如何解析它们sys.argv。argparse 当用户给程序提供无效参数时,该模块还会自动生成帮助和使用消息并发出错误。首先导入函数库:im...原创 2019-08-04 22:25:44 · 1652 阅读 · 0 评论