![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python学习
文章平均质量分 59
txh3093
踩过的坑,都记下来
展开
-
Pyaudio音频流播放单频声和白噪声(含程序)
1.背景在一些声学测量测试中,经常会用到单频声和白噪声,比如测量单个频率是否失真、测量整个频带下的频响等等。测试过程中不可能经常携带白噪声和大量不同频率的单频声文件。此时拥有一个能够直接播放单频声和白噪声的小软件就显得非常实用了。本文基于Pyaudio设计了一个单频声和白噪声的播放器,通过简单的设置即可播放指定频率的单频声,而无需在本地存取音频文件。Pyaudio还可以实现音频录制、音频文件写入、音频文件读取等功能,若有需要可以参考官方文档小程序的设计参考了 Single frequency wave原创 2021-09-26 16:00:57 · 1685 阅读 · 0 评论 -
SCI文献下载神器
1.简介调用某-hub网站的资源,基于pyqt5实现了论文下载程序的设计。通过网络爬虫获取网站的结果,并将其另存为PDF文件,并打开下载好的PDF。使用时,优先使用DOI号或DIO地址进行搜索,成功率更高,URL和标题搜索的成功率次之。本代码仅包含一个可用网址(可能随时失效),且只实现了单个文件的下载。需要通过网站实时更新可用网址或者有批量下载需求的可以联系我。仅做编程交流,资源均来源于网络,如有侵权,联系删除。2. 界面操作简单的操作指引如下:3.主要代码#原创 2021-09-18 10:45:56 · 582 阅读 · 0 评论 -
一键拨号联网小软件
一键"拨号联网"小软件相对与之前的程序 https://blog.csdn.net/txh3093/article/details/107784464 进行了如下的更新。将整个程序构建成一个对象,结构更加清晰,对象同包含了不同的方法。避免了多次输入密码出错无法处理的情况,新的程序密码输错可以一直重试,本地文件只保存正确的联网结果。在首次联网时需要输入账号和密码,一旦联网成功则保存二进制账号密码到与exe文件相同路径下的“联网账号.pkl”文件中。一旦本地创建了具有正确账号密码的文件,双击联网原创 2021-09-09 20:45:53 · 264 阅读 · 0 评论 -
PyQt5 GUI 接收UDP数据并动态绘图(多线程间信号传递)
这里写自定义目录标题1. Qt 安装2. Pycharm 设置2.1 Pyqt5 和 pyinstaller 包2.2Pycharm pyqt工具配置3 PyQt5 图形界面设计4 Pyinstaller 打包成exe1. Qt 安装2. Pycharm 设置你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。2.1 Pyqt5 和 pyinstaller 包2.2Pychar原创 2021-09-06 21:30:16 · 4319 阅读 · 7 评论 -
Pycharm设置终端自动进入当前python环境
这里写自定义目录标题设置Pycharm中的Powershell终端powershell初始化设置Pycharm中的Powershell终端使用系统自带powershell的请忽略此步。在设置–工具–终端中设置默认powershell的路径,并勾选 激活virtualenv 选项。powershell初始化完成上述设置后,可以从pycharm底部进入终端,默认情况下打开终端是不会进入右侧对应的Clean_Py37环境,通过conda activate 进入环境也不会出现前缀。需要进行如下操作原创 2021-09-02 16:27:22 · 6937 阅读 · 1 评论 -
如何使用pycharm进行Window-Windows的远程调试
目前可以查到大量通过Windows pycharm客户端远程调用Linux服务器上的pycharm解释器,进行远程调试的案例。但对于服务器上装的是Windows系统的情况,是否也能够实现远程调试呢?答案很明确:在pycharm中进行Windows-Windows远程调试还未开发出来(现在的时间是2021.03.19),请大家暂时不要浪费时间了。具体讨论见官方论坛:https://youtrack.jetbrains.com/issue/PY-19129#comment=27-1469350...原创 2021-03-19 13:25:08 · 1318 阅读 · 4 评论 -
完美解决 matplotlib 对数上标负号乱码的问题
1.问题描述在matplotlib中显示中文标题时会出现乱码的问题,关于中文字体的调整见https://blog.csdn.net/txh3093/article/details/106858041但上述操作后仍然会在绘制对数图像时,对数刻度上标为负时的负号会出现乱码。本文将给出解决该问题的永久方案。2.解决方法最近发现有大佬在其他论坛中给出了解决方案,但讲述的有一点复杂,在此直接给出解决方案。通过everything软件搜索mathtext.py,一般在site-packages文原创 2021-01-12 10:26:46 · 2975 阅读 · 7 评论 -
Python 将一维数组计算函数拓展到二维矩阵可用
现有的很多函数库中所带的函数都只能进行一维数组的计算,对于大量一维数组构成的二维数据只能通过循环进行迭代计算,在进行少量计算时,还能勉强使用,但一旦需要计算的量比较多时,每个量都需要进行循环计算,显得非常累赘。对于只有一个输入数据,其他输入均为参数的函数 ,例如:a,b,c...=f(x,para1,para2,para3,...),可使用如下拓展函数Cal_by_coloumns将其拓展为可以进行二维计算的形式,由于使用的exec内置函数可以实现动态调用变量名,因此输出变量的个数不限。具体用法是:原创 2020-11-14 17:45:13 · 1081 阅读 · 0 评论 -
Python numpy中的一维数组和矩阵之间的点乘和矩阵乘法计算
在numpy中,一维数组是一个很奇葩的存在,在数组与矩阵计算时,很容易产生混淆,到底数组在矩阵计算时是行向量还是列向量?经过测试,本文预先给出如下结论:1.数组点乘矩阵时,将数组看做是行向量,按行依次与矩阵最内层方括号的内容(最后一个维度)点乘。2.数组左乘矩阵时,将数组作为行向量。3.数组右乘矩阵时将数组作为列向量。4.注意: 按照上述规则,遇到长度不同时,将报错1.数组与数组和矩阵之间的点乘数组之间维度相同时,可以任意进行点乘和点除计算,其他的计算如,sqrt、power、l.原创 2020-09-30 17:11:06 · 8993 阅读 · 2 评论 -
一文弄清 Python 中 list 和 array 中的维度问题
在迭代计算中经常需要以list的形式append新的行或列矢量数据进来,而在后续计算时有需要将list转换为二维array矩阵进行计算,list转array会多出一个维度,令人困扰,现进行一些案例,弄清相关的维度问题。(对于从MATLAB转过来的同学们,这应该是N多的坑之一)1.维度和方括号的关系重新强调一下基础,在list 和 array中可以将每一层方括号看做一个维度,有多少层方括号就有多少维。a=np.array([1,2,3]) # 一维 阶次为3 (3,)a=np.array...原创 2020-09-27 18:21:59 · 4113 阅读 · 0 评论 -
基于pyqt5 构建弹窗进度条,在大型计算中实时显示进度
在大型计算时(例如神经网络训练),经常会遇到计算时间过长,无法知道当前的计算进度,无法判断程序是否进入死循环等问题。采用进度条可以在一定程度上,了解当前进度,判断后续所需的计算时间,缓解等待过程中的焦虑。在计算进程中可以放心地去干其他事情。 常规的方法是使用打印字符的形式展示当前的进度,但这一类进度条很容易被淹没在其他需要显示的内容中。且对于多个显示进度的子任务,需要从打印历史中人工查看子任务在总的任务中的进度。使用起来比较繁琐。 ...原创 2020-09-13 15:44:46 · 14247 阅读 · 10 评论 -
Pycharm 解决 Backend TkAgg is interactive backend. Turning interactive mode on.提示
Pycharm中使用pyqt5作为绘图后台时,会提示Backend TkAgg is interactive backend. Turning interactive mode on.,该提示对绘图没有影响,可以忽略,强迫症请继续往下看:消除提示的方法如下:在pycharm的设置中找到如下位置,将红色框中的选项选中,后续就不会再出现上述提示。其他博文不知所云,东扯西拉最终也没有说出怎么消除相关提示,万事还是要自己多动脑筋。...原创 2020-08-22 12:38:38 · 53439 阅读 · 6 评论 -
Pycharm+Anaconda 之jupyter notebook内核配置,解决内核不匹配等错误
首先确保已经安装了annaconda和pycharm软件,可百度相关教程。1.安装notebook在独立anaconda环境中,假设环境名为Jupyter,安装notebook,已安装的见下一步。(Jupyter) E:\Pywork> conda install notebook # 或 pip install notebook2.检查ipython是否安装默认安装jupyter notebook包时会安装关联的ipython包,为确保此处无问题,可以检查一下,在Jupyter原创 2020-07-29 23:51:06 · 6070 阅读 · 4 评论 -
Python中Matplotlib 绘图 marker的类型标示方法-备忘
官方链接:https://matplotlib.org/api/markers_api.html,为便于查询,具体内容进行了截图,如下:原创 2020-07-27 11:12:10 · 3674 阅读 · 0 评论 -
判断python局部变量是否存在,解决local variable ‘a‘ referenced before assignment问题
在一些项目中我们默认一定存在的量,偶尔会出现不存在的情况,例如,峰值位置的提取,默认是存在的,但极少情况下不存在,后续引用峰值位置变量时,会出现 local variable 'x' referenced before assignment 的错误提示。可以使用如下语句判断变量是否存在,再根据具体情况调整后续的算法。A = np.arange(12).reshape(-1,1)print(A)# 给出位置坐标,idx存在,idx2不存在idx = np.random.rando...原创 2020-07-24 15:05:19 · 1042 阅读 · 0 评论 -
福利!论文直用,python+matplotlib 图片格式一键调整方法!
利用python matplotlib进行绘图时,经常苦恼于无法一键对图片格式进行调整以满足常见期刊论文图片格式要求。通常会要求300dpi,半栏宽度为7cm,跨栏宽度为14cm,线条能看清,字体略小于正文字体,X轴刻度为整数...等等经过摸索,通过函数一键进行上述设置的方法来了!!在matplotlib.pyplot中,有一个名为 rcParams 的参数,该参数可以完成几乎所有你想进行的图片格式预设置。废话不多说,直接上代码,rcParams 能进行设置的参数可通过如下代码进行查看:...原创 2020-07-10 11:09:41 · 4811 阅读 · 2 评论 -
如何将自己的python package打包成可以在其他电脑上安装的whl文件(超全面)
1.python中package包的建立关于package包的建立参考本人的另一篇Blog。2.package包打包成可离线安装的whl文件在已有package包的情况下,对现有package进行打包,可参考如下链接,也可以参考本人后续的相关介绍:主要有如下两个关键2.1 setup.py的位置新建一个名为setup.py 的文件,将其放在package包(含有__init__.py的文件夹)的同一级目录。2.2setup.py的内容需要特别注意的是,当需要的填写的模块有多个时.原创 2020-06-24 17:33:24 · 3239 阅读 · 0 评论 -
永久解决python matplotlib 中文字体的显示乱码-Windows系统
在python中使用matplotlib绘图时,新手通常会遇到中文字体无法显示或显示乱码的问题,这是因为matplotlib中默认没有中文字体的原因,windows系统下的永久解决方法如下:1.首先要确定当前使用的python运行环境 如果没有使用虚拟环境,matplotlib的安装位置,通常在安装目录下C:\ProgramData\Anaconda3,具体可右键点击anaconda或python快捷图标打开当前文件的位置,自动进入该目录。 如果使用的虚拟环境则需要到相应...原创 2020-06-19 16:25:17 · 2322 阅读 · 2 评论 -
pandas 将两个相同表头的表合并并保留行列标题
对于两个表头相同的数据,其合并方法如下,通过pd.merge函数对指定的表头变量进行连接,此外该方法可通过控制left_indexh和right_index参数决定是否保留列标题(或index)。更详细的比较有待后续更新。。。import pandas as pddf1 = pd.DataFrame({'A': ['A0', 'A1', 'A1'], 'B': ['B0', 'B1', 'B2']}, index=['K原创 2020-06-05 12:05:40 · 6700 阅读 · 0 评论 -
matplotlib中的imshow()绘图长宽比例失调,调整长宽比(备忘)
当两个坐标轴的维度相差较大的时候,采用plt.imshow(x) 会出现如下情况。import matplotlib.pyplot as pltplt.imshow(x,cmap='hot') #绘图plt.colorbar() # 显示颜色标尺plt.show() 解决的办法是:plt.imshow(x,aspect='auto')import matplotlib.pyplot as pltplt.imshow(x,cmap='hot',aspect='auto') #绘原创 2020-05-28 12:08:59 · 14530 阅读 · 4 评论 -
matplotlib 中子图subplot 绘图时标题重叠解决办法(备忘)
matplotlib 中subplot子图绘图时容易出现标题重叠的情况。任意两个信号分别在2*1的子图矩阵中绘图。subplot(211)代表:矩阵维度为(2,1),现在按顺序绘制第一个图,当最后一位为2时,则绘制第二个图。典型代码如下:import numpy as npimport matplotlib.pyplot as pltTs = 0.0002 t = Ts * np.array(range(80000)).reshape(-1, 1) # 采样时间序列 x = np原创 2020-05-28 11:57:44 · 20244 阅读 · 2 评论 -
快速傅里叶变换np.fft.fft的使用
np.fft.fft进行快速傅里叶变换,需要特别注意的是,默认是对最后个维度的数据进行fft变换,若你输入的是一维数组,请忽略后面,如果你是二维列矢量,如果不将数据变为行矢量或将axis参数设为0,将得到与输入相同的结果,导致后续的计算无缘无故出错。二话不说,直接上代码,产生一个正弦信号,并对其进行fft变换,对应的频率点可通过np.fft.fftfreq计算得到,需要输入的两个参数分别是FFT的长度和采样时间间隔。需要注意的是fft计算出来的幅度一般与真实的是不一样的,在ifft中会考虑这个因素,原创 2020-05-27 18:02:00 · 34637 阅读 · 20 评论 -
建立自己的package包,直接导入自建py模块
举一个简单的例子进行说明。首先建立如下的文件结构, test2020 文件夹下包含有test2020.py(或其他任意你的自建py文件)。将test2020文件夹的上一级目录添加到系统环境变量path中。在 test2020文件夹下建立"__init__.py" 文件,里面可以为空,用于说明这个文件夹是一个python 的package包。为简便起见,test2020.py的内容如下(当然也可以是任何自建的函数等):# filename:test2020.pyprint("\nf...原创 2020-05-27 10:44:48 · 1762 阅读 · 0 评论 -
如何在tf.keras.layers中添加Dropout层
在tf.keras高级API中添加Dropout层的方式与早期的Tensorflow+keras的方式有所不同。典型的案例如下:dropout_model = tf.keras.Sequential([ tf.keras.layers.Dense(512, activation='elu', input_shape=(FEATURES,)), tf.keras.layers.Dropout(0.5), tf.keras.layers.Dense(512, activation=原创 2020-05-12 10:44:44 · 11024 阅读 · 0 评论 -
python 对array进行元素提取、范围切片及不连续多点切片
import numpy as npa=np.array(range(10)).reshape(-1,1)print(a) # 打印出a#>>> a = [[0 1 2 3 4 5 6 7 8 9]]print(a[-1,0]) # 打印最后一个数,方法1>>> a[-1,0] = 9print(a[-1,-1]) # 打印最后一个数,方法2>>> a[-1,-1] = 9print(a[:6,0]) # 打印范围时,不包括(:.原创 2020-05-11 17:54:26 · 73008 阅读 · 0 评论