
python学习笔记
中南自动化学院至渝
好记性不如烂笔头,多写写
展开
-
python 十进制数字转指定位数的二进制 八进制 十六进制 利用join 和字符串格式化
转换都不行,都是不定位数的,很难达到在前面补0 的操作,因此做一个简单记录。我也不知道是啥作用,不要动,是你要转换的十进制数字,代表你要保证多少位,原创 2022-09-30 19:06:16 · 17506 阅读 · 2 评论 -
字典的一些简单操作(排序(按值排,按键排)、取键最大(小)的,值最大(小)的)
包含如下内容:找字典里面值最小的键对字典的键排序,按键大小对字典的键排序,按按键对应的值大小通过排序和最大最小得到对应的结果返回排序后的字典(按值排和按键排)a = {"s":1,"5":10,"k":14,"lk":2,"gt":3}print(a)print("------下面是找字典里面值最小的键-------")minKey = min(a,key=a.get) # 找值最小的键,最大也是同理print(minKey,a[minKey])minKey1 = min(a原创 2022-03-16 10:19:31 · 16392 阅读 · 0 评论 -
python 二维列表取某一列 或者计算每一列相加,由于不想数组那样可以直接取,所以麻烦一点
取某一列方法1rel_matrix = [[5,3,4,2,3],[1,5,2,2,3],[3,2,5,2,1],[1,4,2,5,2],[1,2,3,1,5]]k = 2 # 你要取的那一列的下标col = [row[k] for row in rel_matrix]方法2rel_matrix = [[5,3,4,2,3],[1,5,2,2,3],[3,2,5,2,1],[1,4,2,5,2],[1,2,3,1,5]]k = 2 # 你要取的那一列的下标col = list(list原创 2021-09-07 10:13:19 · 25825 阅读 · 6 评论 -
sklearn 中的 make_blobs 的参数解释
作用 根据给定的参数生成数据,主要用来测试代码性能(没有实际数据的情况下)函数原型data, label = make_blobs(n_samples=100, n_features=2, centers=3, cluster_std=1.0, center_box=(-10.0, 10.0), shuffle=True, random_state=None)参数说明n_features :表示每一个样本有多原创 2021-08-17 11:36:31 · 23201 阅读 · 0 评论 -
sklearn中决策树初始化 DecisionTreeClassifier 的参数说明
criterion 特征选择标准,可选参数,默认是gini,可以设置为entropy。gini是基尼指数,entropy是信息熵(香农熵)ID3算法使用的是 信息熵C4.5用的信息增益比CART算法使用的则是 基尼指数 注意,sklearn 中实现的决策树是 CART 的,那怕你该参数为 entropy,也只是几乎等同与 ID3 ,请参考这个原创 2021-08-07 21:36:32 · 22952 阅读 · 0 评论 -
python 对数据进行归一化
随手记录下,方便我以后取用,用的是最大最小值归一化,等啥时候有空把标准化(去中心化也写下)import numpy as np"""函数说明:对数据进行归一化Parameters: dataSet - 特征矩阵Returns: normDataSet - 归一化后的特征矩阵 ranges - 数据范围 minVals - 数据最小值"""def autoNorm(dataSet):原创 2021-08-05 14:45:33 · 23034 阅读 · 0 评论 -
按关键字自动分类文件
背景 最近忙着研究生复试的事,每个学生都是通过邮发送他们的复试相关材料过来,因为复试时分不同专业的,所以命名是姓名+专业(或者专业+姓名)然后研究生办公室要你接收这些文件,分门别类的放好。 我是咋干的呢,每一个文件都要选择下载到哪一个文件夹去,眼睛疼,脑袋昏。我就想,这不行呀,这种工作交给计算机不就好了。所以就花了半小时写了一个东原创 2021-03-29 13:22:08 · 25992 阅读 · 0 评论 -
plt 棒状图(柱状图)减小柱子间距
背景 画图的的时候发现两哥柱子之间的间隔太大,不好看解决办法rects1 = plt.bar(x=xx, height=mean1, width=0.6, alpha=0.8,align='edge', color='blue') 这个宽度是由 width 决定的 ,调整width 的大小即可,比如,我这儿的横坐标是range(0,5),所以 width 设置成1那就把地方原创 2021-03-23 14:20:17 · 38740 阅读 · 4 评论 -
python numpy 获得数组的行和列(三种方法)
通过shape属性获得 首先是用 shape 这个属性,学numpy的时候,知道,ndarray有shape这个属性,返回一个元组,里面放了每个维度的大小,所以直接就能想到,对于二维数组print(X.shape[0]) #行print(X.shape[1]) #列 这种方法是我们比较容易想到的,通过内置函数 len 获得 &nb原创 2021-03-23 11:33:26 · 48469 阅读 · 0 评论 -
python plt 设置坐标轴标签的位置(离坐标轴的距离)
背景 画柱状图的时候,横坐标时用的中文字符,然后就发现设置的坐标轴标签(也是中文)离得太近,挤到一起,不好看plt.xlabel("特征")解决办法 通过查函数原型及参数 matplotlib.pyplot.xlabel(xlabel, fontdict=None, labelpad=None, *, loc=None, **kwargs)xlab原创 2021-03-23 11:11:27 · 68687 阅读 · 4 评论 -
解决plt中文乱码 RuntimeWarning: Glyph 24402 missing from current font. font.set_text(s, 0, flags=flags)
mean1,mean2,mean3=avgSlove(X,y)label_list = ['色调', '红色均值', '相对红色分量', '粗度','高频能量'] # 横坐标刻度显示值xx = range(len(label_list))rects1 = plt.bar(x=xx, height=mean1, width=0.4, alpha=0.8,align='edge', color='blue')plt.ylim(0, 1) # y轴取值范围plt.ylabel("归一化后原创 2021-03-23 11:00:17 · 26864 阅读 · 0 评论 -
解决 python plt画柱状图(棒状图)时横坐标刻度线不在中间而在右边
mean1,mean2,mean3=avgSlove(X,y)label_list = ['色调', '红色均值', '相对红色分量', '粗度','高频能量'] # 横坐标刻度显示值xx = range(len(label_list))rects1 = plt.bar(x=xx, height=mean1, width=0.4, alpha=0.8, color='blue')plt.ylim(0, 1) # y轴取值范围plt.ylabel("归一化后的值")plt.xtic原创 2021-03-23 10:45:12 · 35055 阅读 · 0 评论 -
解决 bar() missing 1 required positional argument: ‘x‘
mean1,mean2,mean3=avgSlove(X,y)label_list = ['色调', '红色均值', '相对红色分量', '粗度','高频能量'] # 横坐标刻度显示值xx = range(len(label_list))rects1 = plt.bar(left=xx, height=mean1, width=0.4, alpha=0.8, color='blue')plt.ylim(0, 1) # y轴取值范围plt.ylabel("归一化后的值")plt.x原创 2021-03-23 10:33:00 · 31145 阅读 · 1 评论 -
python的变量作用域,main函数里面的变量,其他函数里面也能直接用
def hh(): print(a)if __name__ == '__main__': a=20 hh()20 和js差不多的一个道理,有一个 LEGB 变量作用域,js里面是什么作用域链,但c和c++似乎不是这样(我好久没复习了)使用场景 为什么想到这个是因为,我在接手师兄的项目时候,注册界面是登录界面的一个子界面(都在一个窗口),我要求在用户点原创 2021-03-15 18:58:42 · 28077 阅读 · 0 评论 -
plt.imshow()显示灰度图色差问题,图片绿油油的
import pywtimport numpy as npfrom cv2 import cv2import matplotlib.pyplot as pltimg = cv2.imread("lenags15.bmp", 0)w = 'sym4' # 定义小波基的类型l = 3 # 变换层次为3coeffs = pywt.wavedec2(data=img, wavelet=w, level=l)threshold = 0.04 # 设置滤波阈值denoised_img = py原创 2021-03-15 18:28:28 · 28866 阅读 · 0 评论 -
让一个灰度矩阵显示为图片python
背景 今天有个小伙伴问我图片小波变换的后再重构的矩阵怎么显示出来时一片白,刚开始我以为时重构的参数出了问题,调试了代码发现,是灰度矩阵转为图片的代码不对,数据类型也没变换核心代码方法1new_img=Image.fromarray(dataArray)new_img.show()方法2plt.imshow(dataArray,cmap='gray')原创 2021-03-15 18:18:46 · 28398 阅读 · 0 评论 -
sklearn 0.21.3 安装不上原因,注意sklearn 0.21.3不再支持python3.8 以上
scikit-learn 0.21.3地址,你点左边的download files 就查看的到。 气死我了,找了好多资料,啥都试了一遍,最后才发现原创 2021-03-10 22:22:26 · 28313 阅读 · 4 评论 -
python快速安装大量库,想要运行别人的大型项目代码?直接让他把库打包发过来
如题:最近对接师兄的项目,由于配置不同,环境不同python版本不同,库版本不同,我始终运行不起来代码,安装库还一堆兼容问题 后面发现直接复制到虚拟环境下,就可以显示读取到库了,那岂不是美滋滋。注意注意 做大型项目最好搞一个虚拟环境,既方便移植,又不污染代码...原创 2021-03-10 22:14:50 · 26649 阅读 · 0 评论 -
2021.3.10阿里面试题
'''获得第一行 n m k'''temp=(input())templist=temp.split(" ")n=int(templist[0])m=int(templist[1])k=int(templist[2])'''获得城市二维列表'''city=[]for i in range(n): temp = (input()) templist = list(temp) if '@' in templist: #找到起始位置,然后记录下标..原创 2021-03-10 10:46:38 · 26220 阅读 · 1 评论 -
语音播报ip所在地址的天气信息 python
到这儿 免费天气接口api 用qq注册登录,然后拿到 APPID 和 APPSecret。import requestsfrom requests import utilsimport jsondef apishop_send_request(method, url, params=None, headers=None): ''' 转发请求到目的主机 @param method str 请求方法原创 2021-03-08 15:26:23 · 26108 阅读 · 0 评论 -
Python pandas库里面pd.read_csv()函数中parse_dates()参数作用
read_csv()函数官方文档,遇事不决找官网作用 一句话:将某一列解析为时间索引。这个某一列是你自己指定的, 时间索引跟时间戳关系比较大,主要就是为了能使用一些时间索引的属性方法简便我们的原创 2021-03-08 09:07:25 · 29601 阅读 · 0 评论 -
python创建全为0的二维列表遇到的坑
本来想着简单点,用列表乘法m = n = 3test = [[0] * m] * nprint(test) 输出也看了一下,没啥问题[[0, 0, 0], [0, 0, 0], [0, 0, 0]]m = n = 3test = [[0] * m] * nprint(test)test[0][0] = 2print(test)&nb原创 2020-12-09 18:39:27 · 30312 阅读 · 0 评论 -
批量下载哔哩哔哩视频的工具
最近找到了计算机速成系列课程,想下载下来看,因为有时候没网就很抓瞎,但是哔哩哔哩下载助手只能一次下载一个,还必须保持窗口子啊打开状态,就不是很方便,我比较懒,想偷懒,就找了一个方法批量下载视频链接:https://pan.baidu.com/s/1vGAnTvi6U-5fqcMaNvxEvw提取码:319e前提提要 要安装有python环境,有个基础环境就可以了,然后pip原创 2020-11-30 10:54:53 · 27208 阅读 · 9 评论 -
不想安装anaconda 但想打开 .ipynb文件
问题缘由,我个人不太喜欢安装anaconda这种集成环境,但是任务需要看 .ipynb文件,所以没办法,硬着头皮搞呗。 .ipynb文件要用ipython notebook打开,不然的话打开的时候类似 json 格式,键值对的形式,我自己勉强看得懂这种格式,和富文本有点像,看得懂但是,看的不舒服,每次都要找 source 下面的东西 &原创 2020-11-30 09:21:41 · 26882 阅读 · 0 评论 -
利用numba 的 @jit 加快 for 循环操作
最近在做一个matlab脚本转python的工作,但出现问题在,python的执行时间太长,具体表现为matlab 1s左右,python要接近于4s 经过简单测试,发现python和matlab的for循环耗时有较大不同 matlab  原创 2020-11-23 16:53:13 · 31672 阅读 · 8 评论 -
与matlab里面 imregionalmin 函数相同的python代码
from skimage import measure,morphologydef imregionalmin(image): """Similar to matlab's imregionalmin""" reg_max_loc = morphology.local_minima(image) return reg_max_loc.astype(np.uint8)腾讯大学 scikit-image —— morphology —— local_minimalocal_m原创 2020-11-19 13:44:25 · 26406 阅读 · 0 评论 -
与matlab里面 imcomplement 函数(负片函数)相同的python代码
import cv2import numpy as npdef imcomplement(img): # 负片函数,相当于对图片取反 0<->255, 10<->245, 21<->234 table = np.array([255 - i for i in np.arange(0, 256)]).astype("uint8") return cv2.LUT(img, table) # 使用OpenCV的查找表函数原创 2020-11-19 13:27:07 · 26682 阅读 · 0 评论 -
与matlab里面 imreconstruct 函数相同的python代码
import cv2import numpy as npdef imreconstruct(marker, mask, SE=np.ones([3, 3])): # 开重构 """ 描述:以mask为约束,连续膨胀marker,实现形态学重建,其中mask >= marker 参数: - marker 标记图像,单通道/三通道图像 - mask 模板图像,与marker同型 - conn 联通性重建结构元,参照m原创 2020-11-19 13:23:45 · 26472 阅读 · 0 评论 -
与matlab里面 imadjust 函数相同的python代码
正在做一个把matlab程序转python的工作,遇到 matlab里面的 imadjust 函数,但是找了一圈没有对应的python函数,需要自定义一个函数import numpy as npfrom bisect import bisect_left # 已测试完毕,成功 def imadjust(src, tol=1, vin=[0, 255], vout=(0, 255)): # src : in原创 2020-11-19 13:15:52 · 27083 阅读 · 1 评论 -
设置tk 里面Entry的字符居中显示
想利用 Entry 控件实现显示一些文本信息,这些文本信息时可读写的,在运行过程中随时会变化,所以用 Entry 控件原始版本Entry(frameup, text=path, width=15) 然后发现这个版本的文本是左对齐,不是居中对齐,不太好看,想着居中显示 修改版本原创 2020-11-17 18:20:59 · 29655 阅读 · 2 评论 -
numpy 指定浮点数的小数位数
问题来源 做GUI的时候发现数据太长了,显示出来不好看,所以有这个需求 numpy.around函数原型numpy.around(a, decimals=0, out=None)参数a:要转换的np数组decimals:要保留的位数,默认为0out :Alternative output array in which to place the resul原创 2020-11-17 17:16:19 · 28257 阅读 · 1 评论 -
Numpy 怎么把arange ()产生的列表 变成一个行向量或者列向量
行向量import numpy as npa = np.array(np.arrange(10))rowVector = a..reshape((1,-1)) 列向量import numpy as npa = np.array(np.arrange(10))rowVector = a..reshape((-1,1))原创 2020-11-08 14:54:38 · 26934 阅读 · 0 评论 -
将矩阵的每一列都乘列索引的平方再求和 和 将矩阵的每一行都乘行索引的平方再求和
为了解决 matlab 转过来的 Python 代码运行时间太长问题, 需要用到这个东西将矩阵的每一列都乘列索引的平方再求和方法1for i in range(row): for j in range(col): tempSum = tempSum + float(ngldm[i,j]) * ((j+1)**2) # +1是因为下标从0开始方法2for j in range(col): tempSum原创 2020-11-08 14:37:45 · 26124 阅读 · 0 评论 -
matlab求峰度(kurtosis)、偏度(skewness)得函数及python对应的峰度(kurtosis)、偏度(skewness)函数
正在做一个把matlab程序转python的工作,记录下遇到的问题与解决方案 定义峰度kurtosis:用于度量x偏离某分布的程度。正太分布的峰度是3;当时间序列的曲线峰值比正太分布的高时,峰度大于3;当比正太分布的低时,峰度小于3。原创 2020-11-07 22:29:37 · 46407 阅读 · 13 评论 -
python求解峰度kurtosis 和matlab求得的值差很远 解决办法
正在做一个把matlab程序转python的工作,遇到如题问题 实际的代码中输入数据有点大,下面简单的以 x = [1,2,3,4,5] 来举例说明 matlab>> x = [1,2,3,4,5];>> kurtosis(x)ans = 1.7000原创 2020-11-07 22:15:11 · 26844 阅读 · 0 评论 -
把视频变成一帧一帧的图片放到对应的文件夹下 python代码
代码import cv2 # 安装见 https://blog.csdn.net/qq_43657442/article/details/109276236from skimage import io # 若安装不上,或很慢,见https://blog.csdn.net/qq_43657442/article/details/109526813import osvideos_原创 2020-11-06 11:20:16 · 26809 阅读 · 20 评论 -
pip安装 scikit-image包 出错 ERROR: Could not find a version that satisfies the requirement scikit-image
错误信息:ERROR: Could not find a version that satisfies the requirement scikit-image (from versions: none)ERROR: No matching distribution found for scikit-image原因:一般是网络的问题,需要使用国内的镜像源来加速解决办法pip install scikit-image -i http://pypi.douban.com/simple/ --原创 2020-11-06 10:31:02 · 36067 阅读 · 2 评论 -
给定一个数组,然后给一个数number,判断number是否在数组里面
一种是依次遍历,查看是否有与目标 number 相等的,复杂度O(n)利用 bitmap 映射来找,创建bitmap的复杂度是O(n)(毕竟要一个个映射),查找在不在里面复杂度是O(1),所以如果给定的是已经映射好的,那查找就很舒服了 ,适合需要频繁查询 bitmap的思路及代码(python、Java)用 bisect 来查找与给定值最接近的数,然后看是不是相等(不过注意,此法只适用于有序的数组) python:从整数列表中获取最接近给定值的数字8.6. bisect — 数组二分查找算法.原创 2020-11-04 11:16:07 · 26134 阅读 · 0 评论 -
bitmap 的思路及代码(python、Java)
思想(思路): 把一个整数映射到一个bit位上,出现一次就把对应位置1,判断一个数在不在已有的数据里面就判断这个数对应的 bit 位是不是1 核心在于怎么映射(即给我一个数,我就知道他对应的是那个 bit 位),这个也好办,一个数 number 对应的 bit 位就是第i个8字节整数的第k位,他们满足 number = i * 8 + k,这样一来,原创 2020-11-03 13:35:54 · 25909 阅读 · 0 评论 -
OpenCV 中与MATLAB bwlabel函数功能完全相同的函数————connectedComponents 还有skimage.measure.label 函数
matlab调用代码L1 = bwlabel(DL);其中 DL 是一8位单通道图像函数原型int cv::connectedComponents (InputArray image, OutputArray labels, int connectivity = 8, int ltype = CV_32S )原创 2020-11-02 16:03:16 · 26843 阅读 · 0 评论