
python笔记
好小的风
这个作者很懒,什么都没留下…
展开
-
基于python手动画出spectrogram(语谱图)
Spectrogram是基于STFT变换得到的,非常有助于分析信号的时频特性,在语音信号处理中常被称为"语谱图"。python中有一些写好的模块可以直接将时域的信号转化成spectrogram,但这并不利于对其原理的理解,而且横纵左边的转换也不是很方便,在这篇博客中我们尝试直接基于python的基本操作来手东画出spectrogram。Generate synthetic data每台模拟电话的拨盘上都会产生2个正弦波信号,例如按下数字1就会产生频率包含697Hz和1209Hz的正弦波,697Hz表原创 2020-05-18 17:07:50 · 7865 阅读 · 3 评论 -
如何在python中灵活地画子图
plt.axes:python中灵活地画子图方法最近在修改文章的时候遇到了要画出大小不同的子图问题,一直以来都是采用plt.subplot(num_rows, num_cols, fig_index)直接来画子图的,但是发现这种方法很难调整子图的大小,于是采用plt.axes来解决问题。首先来看下Figure和Axes对象,在python的matplotlib库中,整个图像为一个Figure对象,在Figure对象中可以包含一个或多个Axes对象,每个Axes对象都是一个拥有自己坐标系统的绘图区域,其原创 2020-05-17 17:12:00 · 2493 阅读 · 0 评论 -
所有车的过桥最短时间
今晚帮朋友助攻遇到了一道题,当时有思路但是没有写出来,后来结合牛客网上的解答写了出来,也不知道具体能AC多少道题,先放在这里等大家指点吧~题目描述有N辆车药陆续通过一座最大承重为W的桥,其中第i辆车的重量为w[i],通过桥的时间为t[i],要求第i辆车上桥的时间不早于第i-1辆车上桥的时间,任意时刻桥上所有车辆的总重量不超过W。那么,所有车辆都通过这座桥所需的最短时间为多少?输入:...原创 2019-09-29 22:40:48 · 439 阅读 · 0 评论 -
Python 计数相关的题
python 计数相关的题在简书上看到了一篇文章介绍了Leetcode上“计数”相关的题,介绍 了一些非常巧妙的方法,所以转载过来做下记录。问题:给定序列,统计所有元素出现的次数法一:seq.count()seq = 'abcdbabaecccdbb' #待统计序列#先变成集合得到seq中的所有元素,避免重复遍历set_seq = set(seq) rst = []...转载 2019-08-08 17:11:38 · 272 阅读 · 0 评论 -
网易20届提前批笔试第一题:字典序排列
其实这题就是在考字典序全排列,然后计算出总的排列数(n的阶乘),倒数第Q个排列即为正数(n!-Q-1)个排列。考试的时候傻了,用一个list去储存所有的排列,其实根本不需要的。真的傻了傻了。def permute(nums, n, total): cnt = 0 idx = 0 while True: try: if nums ...原创 2019-08-03 17:45:40 · 275 阅读 · 0 评论 -
LeetCode 3 : 无重复字符的最长子串
算法描述给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。代码描述方法一:对于字符的遍历,譬如abc,然后又出现一个a,则此时就应该删除第一个a,继续往后遍历,以此类推,所以我们需要记录之前出现过的字符,记录的方式主要是用dic记录字符出现的个数,但是注意...原创 2019-07-10 11:19:41 · 111 阅读 · 0 评论 -
剑指Offer 42 : 连续子数组的最大和
剑指Offer 42 : 连续子数组的最大和,即最大子序和问题。算法描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。代码描述主要的算法描述可以参见《剑指Offer》P218-P220,基...原创 2019-07-09 11:01:14 · 223 阅读 · 0 评论 -
[Leetcode]——Linked List Cycle II (链表中环的入口节点)
题目描述Given a linked list, return the node where the cycle begins. If there is no cycle, return null.To represent a cycle in the given linked list, we use an integer pos which represents the position...原创 2019-06-26 16:09:37 · 231 阅读 · 1 评论 -
牛客网华为练习题——删除字符串中出现次数最少的字符
牛客网华为练习题——删除字符串中出现次数最少的字符题目描述实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。解题思路这题很简单,于是我就写出了如下代码:# 19/6/2def func(s): if len(s.encode('utf-8')) > 20: # 判断字节 ...原创 2019-06-03 15:57:21 · 489 阅读 · 0 评论 -
十大经典排序算法之"快速排序"
快速排序让我想了挺久的了,也踩了一些坑,特在此记录把。算法描述在待排序的数组中选择一个元素作为基准(通常选择第一个元素),即基准元素;将待排序的元素进行分区,比基准元素大的元素放在基准元素的右边,比基准元素小的元素放在基准元素的左边;对左右两个分区再重新选择基准元素并进行分区,直到整个数组有序。时间复杂度 (平均)时间复杂度(最坏)时间复杂度(最好)空间复杂度稳定性...原创 2019-06-14 15:14:45 · 238 阅读 · 0 评论 -
十大经典排序算法之"插入排序"
在我看来,插入排序的工作原理和选择排序也有异曲同工之处很相似,选择排序是在"右边的无序区"中挑出最小(大)的数插入到"左边的有序区的末尾",插入排序则是在"左边的有序区"中找到"右边的无序区的第一个元素"应该放置的位置并插入。算法描述简单来说,插入排序的工作原理就是用过构造有序序列,对于未排序数据,在有序序列中从后向前扫描,找到相应的位置并插入。从第一个元素开始,认为该元素已经被排序;取...原创 2019-06-13 21:28:26 · 187 阅读 · 0 评论 -
十大经典排序算法之"选择排序"
十大经典排序算法之"选择排序"选择排序的工作原理简单直观,和冒泡排序也有异曲同工之处,它将需要排序的数组分为有序区和无序区,首先在无序区选出最小的数,放到有序区的末尾(有序区为从小到大排序好的数组,因此此时从无序区选出的最小的数一定大于有序区中最大的数),以此类推,直到数组有序。算法描述初始状态:无序区为原始数组arr[1,...,n]arr[1,...,n ]arr[1,...,n],有...原创 2019-06-13 17:24:42 · 309 阅读 · 0 评论 -
十大经典排序算法之"冒泡排序"
十大经典排序算法之"冒泡排序"冒泡排序可谓是最简单的排序算法了,它重复地遍历需要排序的数组,一次比较相邻的两个元素,如果前面的数大于后面的数则进行交换。算法描述比较相邻的两个元素,如果前面的数 > 后面的数,则进行交换;对每一对相邻的元素进行上述步骤,从开始的一对到最后的一对,这样数组中最大的数应该在数组的末尾;对除了最后一个元素外的其他元素,重复上述步骤,直到排序结束。代码...原创 2019-06-13 16:20:16 · 306 阅读 · 0 评论 -
日常记录
日常记录:Deep learning based Speech Beamforming记录在运行Deep learning based Speech Beamforming 的开源代码时出现的一些bug,以及解决方法。前言 记录跑程序过程中的一些bug,还希望有经验的人多多指教。准备工作 注:暂时只是做了测试,还没有跑训练模型的程序。install tensorflow-gpu==1...原创 2018-11-24 18:29:29 · 560 阅读 · 0 评论 -
Python函数之librosa.load()函数
librosa.load()函数用途:读取文件,可以是wav、mp3等格式。官方介绍:https://librosa.github.io/librosa/generated/librosa.core.load.html注意事项: 该函数是会改变声音的采样频率的。如果 sr 缺省,librosa.load()会默认以22050的采样率读取音频文件,高于该采样率的音频文件会被下采样,低于该采样率...原创 2018-11-03 10:24:29 · 14869 阅读 · 0 评论 -
记录代码运行时的一些errors
日常bug记录记录在运行CNN for Single Channel Speech Enhancement 的开源代码时出现的一些bug,以及解决方法。前言 本人深度学习小白一个,更没有太多的实战经验,主要研究方向是single channel speech enhancement。由于导师要求跑一个deep learning-based method,时间比较紧,就先找了个开源的代码跑跑...原创 2018-11-01 16:58:05 · 281 阅读 · 0 评论 -
Python函数之np.pad
np.pad: 常用于对一维或多维数组的填充,如在CNN网络中,常常要使用padding操作,从而减少由convolution操作带来的图片尺寸shrink等。 一维数组 import numpy as nparr1D = np.array([1, 1, 2, 2, 3, 4])'''不同的填充方法'''print 'constant: ' + str(np.pad(a...转载 2018-09-09 15:11:57 · 1419 阅读 · 0 评论