
Python
Regnaiq
只是一个学生, 学无止境. 慢慢来, 比较快.
展开
-
sns.heatmap画图只有第一行有字
这是因为seaborn的包太老了。update一下就行。原创 2024-07-02 01:59:12 · 342 阅读 · 0 评论 -
AttributeError: type object ‘h5py.h5.H5PYConfig‘ has no attribute ‘**reduce_cython**‘
【代码】AttributeError: type object 'h5py.h5.H5PYConfig' has no attribute '**reduce_cython**'原创 2024-05-16 23:43:59 · 296 阅读 · 0 评论 -
在多个环境里使用同一个Spyder
在一个环境里安装tensorflow, 在另一个环境里安装pytorch. 可以用同一个Spyder。如果需要使用env1, 就选择默认.原创 2023-04-28 13:15:05 · 593 阅读 · 1 评论 -
Python设置随机数种子
代码】Python设置随机数种子。原创 2022-07-27 15:52:04 · 4265 阅读 · 0 评论 -
Python用Scikit-learn train_test_split划分训练集测试集同时保留索引
我们一般都用Scikit-learn的train_test_split来划分训练集和测试集, 但是有一个问题就是train_test_split并不返回训练集(或测试集)的索引, 这样的话有时候会比较麻烦.其实我们可以曲线救国, 往函数里传一个有序的索引就好了, 函数也会把这个给划分掉.比如:indices = np.arange(x.shape[0]) # help for check the index after split[x_train, x_test, indices_train, ind原创 2022-05-25 10:14:20 · 1368 阅读 · 6 评论 -
Python之多个二维数组合并为三维数组
如果多个二维数组维数一致, 那么可以直接相连, 再用np.arraya = np.array([[1,2,3],[4,5,6]])b = np.array([[2,2,3],[4,5,6]])c = np.array([[3,2,3],[4,5,6]])com = np.array([a,b,c])如果二维数组的维数不一致, 要曲线救国了. 先转化成list, 在变成arrayaa = np.array([[[1,2,3],[4,5,6]],[[2,2,3],[4,5,6]],[[3,2,3原创 2022-04-02 17:25:26 · 5539 阅读 · 2 评论 -
Spyder的LSP python已停止down如何解决?
把spyder的LSP从pylsp换成pyls打开你的用户文件夹, 找到spyder-py3 C:\Users\XXX\.spyder-py3打开文件 .spyder-py3/config/spyder.ini找到provider_configuration这一行把所有pylsp换成pyls, 保存重启spyder即可.原创 2022-03-28 20:12:03 · 2434 阅读 · 2 评论 -
Python编程小技巧
Python的拷贝与赋值与matlab不同, python的赋值相当于引用, 修改两者任一个其他都会改变. 如果需要另外赋值一个全新的变量, 需要用拷贝copy(), 只拷贝父对象或者深拷贝deepcopy(), 父对象和子对象一起拷贝. 这里有一个例子....原创 2022-03-12 17:12:10 · 963 阅读 · 0 评论 -
Python的list如何批量索引
a[1]a[1:2]但是不可以连续索引, 比如a[1,3,4]现在有两个解决方案:把list转换成array: np.array(a)使用list的句内循环idx=[1,3,4]a2=[a[idx[i]] for i in range(len(idx))]原创 2022-01-17 10:18:19 · 5240 阅读 · 0 评论 -
Python的generator
Python的generator可以每次读取一个batch, 可以方便地用在model training时读取大批量数据.def file_generater(x_train, y_train, batch_size): i = 0 # initial pointer Num = len(x_train) while True: # if finish the reading, repeat if i + batch_size > Num:原创 2022-01-17 10:01:29 · 1314 阅读 · 0 评论 -
matlab实现python的argmax
其实很简单, 就是用vec2ind.但是要注意, vec2ind是按列算的(每列取最大), 所以相当于argmax的axis=0. 这一点要注意.原创 2021-12-26 17:20:43 · 575 阅读 · 0 评论 -
python读取npz文件
python读取npy文件很容易, 直接用load即可.但是npy的话因为包含了很多文件, 要先拿到文件名才可以.第一步也是loaddata=np.load('data.npz') # 导入data.filesOut[94]: ['arr_0', 'arr_1', 'arr_2', 'arr_3', 'arr_4', 'arr_5']file1=data[arr_0] # 按照文件名导入...原创 2021-12-26 17:01:48 · 4428 阅读 · 0 评论 -
npz文件转mat文件
python可以保存两种文件, npy和npz. npy是单个变量, npz可以保存多个变量.对于matlab来读取npy文件, 可以使用npy-matlab库.但是不适用于npz文件, 所以如果想用matlab读npz, 首先要先把npz转成.mat才可以.import scipy.io as ioio.savemat('test.mat', mdict=np.load('test.npz'))...原创 2021-12-21 11:01:46 · 3580 阅读 · 1 评论 -
python之如何优雅的划分train_test_validation 数据?
我们知道skilean有一个train_test_split函数可以帮我们划分trian和test, 那么我们就可以通过这个函数间接完成train_test_validation的划分.from sklearn.model_selection import train_test_splitdef train_test_val_split(train_ratio = 0.8,validation_ratio = 0.1,test_ratio = 0.1,random_state): # rand原创 2021-08-02 15:03:26 · 1861 阅读 · 0 评论 -
Python之读取matlab v7.3 mat文件
python可以用from scipy.io import loadmat来读取mat格式文件.但是当mat很大的时候要存成v7.3格式的. 这时候可以用网友写好的mat73包来读取:pip install mat73原创 2021-07-23 10:15:07 · 2484 阅读 · 1 评论 -
Python之一维数组的探讨: 维度是(n,)还是(n,1)?
对于使用习惯matlab的人来说, 一维数组是一下很难理解的. 比如A=[1;2;3;4]这里的一维数组, 也可以说是4X1的二维数组.但是python里并不这么认为, python里规定, 一维数组就是一维, 维度是(4,)不存在说是特殊的一维那种情况. 相反地, python里规定了一个matrix类, 对应着二维数组, 而且指定定义二维. (现在已经不推荐使用, 而是推荐不管多少维都统一使用array类).因为对于数据处理来说, 很多情况下二维已经够用了. 所以matlab一般都是用二维.原创 2021-07-10 16:20:21 · 882 阅读 · 0 评论 -
Python之连接数组/List
连接array/listmatlab中如果连接两个维度相同的数组, 只需要用逗号或者分号即可, 如:C=[A,B]C=[A;B]但是在pyhon里如果用这种形式会生成新的list, 所以要用hstack或者vstack, 比如:C=np.hstack((A,B))C=np.vstack((A,B))当然也可以用np.append:C=np.append(A,B,axis=1)但是append不适用于俩个以上....原创 2021-07-10 15:56:29 · 1324 阅读 · 0 评论 -
Python之list, array的转换
list 2 array:np.array(list)array 2 list:tolist(array)原创 2021-07-06 17:12:01 · 376 阅读 · 0 评论 -
Keras导入自定义metric模型报错: unknown metric function: Please ensure this object is passed to`custom_object‘
Keras的模型自定义了metric或者loss,在保存成后h5的时候没有问题, 但是在使用load_model导入的时候却会报错:unknown metric function: HammingScore. Please ensure this object is passed to the custom_objects argument.这是因为自定义的参数没有传递进去. 有两个解决办法:如果只需要做预测, 不再训练, 则可以直接加compile = False:model = ker原创 2021-06-12 20:41:02 · 10695 阅读 · 14 评论 -
Keras打印模型训练总用时
定义callback:from timeit import default_timer as timerclass TimingCallback(keras.callbacks.Callback): def __init__(self, logs={}): self.logs=[] def on_epoch_begin(self, epoch, logs={}): self.starttime = timer() def on_epoch_end原创 2021-06-11 20:54:59 · 794 阅读 · 2 评论 -
Keras自定义multilabel多标签分类的衡量标准
对于多标签分类而言, 自带的标准比如accuracy已经不在适用.hamming score是一个很好的标准, 详细可以参考这篇文章.贴一下自己写的自定义hamming score:import tensorflow as tfimport tensorflow.keras.backend as Kdef HammingScore(y_true, y_pred): y_true = tf.cast(y_true, tf.bool) y_pred = tf.greater(y_p原创 2021-06-10 20:04:28 · 517 阅读 · 0 评论 -
python之实现hamming score
hamming score用于multi-label多标签分类中.具体介绍可以看这一篇博客.使用python实现hamming Scoredef hamming_score(y_true, y_pred): # y: [samples X labelNum] y_pred = np.greater(y_pred, 0.5) #二值化 right = np.sum(np.logical_and(y_true, y_pred), axis=1) #分类正确的个数 total原创 2021-06-10 15:50:05 · 657 阅读 · 2 评论 -
Python学习笔记
阈值划分a[a<=0.5]=0a[a>0.5]=1判断两数组是否相等(a==b).all() # 全部相等(a==b).any() # 存在相等的元素数据类型转换a.astype(bool)a.astype(int)原创 2021-06-10 15:41:15 · 172 阅读 · 0 评论 -
python转置矩阵
可以直接用Ta.T对于多维向量, 可以用numpy.transpose (一维不适用)向量a的第一维为0, 第二维为1, 如果要转置, 则可以:a.transpose(1,0) 因为原本的顺序是(0,1). 三维同理.可以用numpy.swapaxes来进行轴对换.比如a.swapaxes(0,1)就是交换0轴和1轴. 不需要把所有轴的顺序都写出来(对于高维而言)...原创 2021-06-09 15:17:38 · 306 阅读 · 0 评论 -
Spyder的一些常用操作
清除变量reset清楚ipython的记录clear分块 (类似matlab)在块前写上# In[1]就可以右键单独运行此块, 便于调试.原创 2021-06-09 15:09:29 · 2025 阅读 · 0 评论 -
Python中的size和shape
np.size(a) 不加参数, 返回的是a中所有的元素个数.np.size(a,0) 返回a的第一维的大小np.shape(a) 返回a的大小[m x n], 以二维矩阵为例, 相当于np.size(a,0), np.size(a,1)原创 2021-06-09 14:58:28 · 451 阅读 · 2 评论 -
Python之说清楚numpy np.percentile
percentile表示的是百分位数. 一个大家常见的百分位数是50-percentile, 也就是中位数.现在网络上的博文垃圾太多了, 找半天没有看到把问题讲清楚的.比如我们现在有一个数组:x=np.arange(1:5)我们得到array([1, 2, 3, 4]).首先很容易理解的是, 100-percentile是4, 0-percentile是1.我们可以归纳出一个公式, k-percentile point就是第(n-1)*k+1个数. 其中n是数组的个数, k就是百分数. 带入k原创 2021-05-25 17:19:50 · 795 阅读 · 0 评论 -
python带参数执行命令
带参数执行的python命令,比如:sudo python record.py 1024 3 'test.wav'那么怎么获取这些参数呢?使用sys.argv.文件要导入sys包:import sys那么所有的参数都会包含在sys.argv中.其中脚本的名字是sys.argv[0].注意: sys.argv是字符串数组....原创 2020-12-15 21:40:59 · 769 阅读 · 0 评论 -
python中判断数据类型
可以使用isinstance(变量,类型)类型有数字(int)、浮点(float)、字符串(str),列表(list)、元组(tuple)、字典(dict)、集合(set) 等或者直接与一个例子比较typr(变量)=type(A)原创 2020-12-15 21:31:41 · 1414 阅读 · 2 评论 -
无法安装pyaudio
try:sudo apt-get install portaudio19-devsudo pip install pyaudioorsudo apt-get install portaudio19-devsudo apt-get install python-pyaudioorsudo apt-get install libjack-jackd2-dev portaudio19-devpip install pyaudio原创 2020-12-15 11:15:13 · 260 阅读 · 0 评论 -
Respeaker USB V2.0 4MIC ARRAY总结
所有脚本基于python 2.7Linux没有python2的先装pythonsudo apt-get install python或者参考:ubuntu安装pythonPython 环境搭建Linux(Ubuntu)系统安装Python安装pipsudo apt-get install python-pip安装pyaudio的依赖包sudo apt-get install portaudio19-dev libasound-dev libportaudio2 libpor原创 2020-07-13 22:12:14 · 1410 阅读 · 0 评论 -
pyhton学习笔记(更新中)
断断续续地学python,时不时玩一把。 记录一下要注意的问题,虽然简单,但一段时间不用就会手生,好记性不如烂笔头。python写完不加分号printpython2:print XXXX python3:print (XXXX)数字转字符串str()格式化输出类似C,但要有百分号strHello = "the length of (%s) is %d" %(...原创 2018-07-08 12:29:50 · 207 阅读 · 0 评论 -
Python2转Python3
Python2与Python3有很大不同,主要是集中在字符串方面。 有的程序是用2写的,但是很久没有维护,在3上运行经常报错。好在Python3自带了代码转换工具,在Pyhon\tools\scripts\2to3.py此脚本有很多参数,大致如下:你可以根据自己的需要选择合适的参数。我们在此目录下打开cmd,或者从cmd cd到此文件夹, 使用命令pytho原创 2018-01-08 14:51:43 · 344 阅读 · 0 评论 -
查看Python的安装目录
有时python用久了或者装了多个版本,忘记装在哪里了,可以使用命令来查看:python -c "import sys; print(sys.path)"或者把上述命令保存成.py文件运行。原创 2018-01-08 15:02:58 · 7409 阅读 · 0 评论