分类
Python学习 程序设计

转载:如何让 python 处理速度翻倍?内含代码

本文转载自:机器之心 · 阿里技术

https://www.jiqizhixin.com/articles/2019-12-25-2

阿里妹导读:作为在日常开发生产中非常实用的语言,有必要掌握一些python用法,比如爬虫、网络请求等场景,很是实用。但python是单线程的,如何提高python的处理速度,是一个很重要的问题,这个问题的一个关键技术,叫协程。本篇文章,讲讲python协程的理解与使用,主要是针对网络请求这个模块做一个梳理,希望能帮到有需要的同学。

分类
ASRT Python学习 程序设计

Python实现录音和播放功能

我们在需要跟用户使用语音进行交互的场景中,经常需要使用到录音的功能,比如网络语音通话和语音助手等,而完整的从底层实现录音功能往往是相当困难的,通常通过调用相关API来实现。这里我们介绍一种使用Python(3.x)中的PyAudio软件包来实现录音的方法。

分类
ASRT Python学习

为Keras包装一个线程安全的数据生成器

我们在使用Keras训练深度学习模型时,往往不能一次将数据全部加载进内存中,那样会导致内存不足的问题。包括Keras在内的深度学习框架提供了动态数据加载的模式,也就是说,需要使用到哪些数据时,才会加载哪些数据,而Keras需要我们自己定义一个数据生成器,并通过多线程的机制调用我们传入的数据生成器,克服硬盘的IO速度瓶颈,以实现数据的动态加载。

分类
Python学习 操作系统原理 程序设计

使用C语言和Python基于MPI并行计算PI的值

圆周率PI是一个很神奇的数字,自古以来,包括数学家在内的很多人都曾使用过各种各样的算法去估算PI的真实值,并且都取得了一定的成就。古巴比伦人使用3.125作为PI的近似值,约公元前1700年的古埃及人则提出PI=3.1604,中国的祖冲之(430-501)则使用355/113作为近似值,使得PI值精确到了7位数。随着计算机的问世,以及科学技术发展的需要,PI的近似值目前精确位数早已突破万亿位。PI值除了有其每一位、每两位、每三位都符合均匀分布的统计规律特性之外,还可以用来检测计算机硬件的可靠性,而且,也可以用来入门并行计算。

分类
Python学习

python实现socket通信

python可以用来实现两个主机进程之间的TCP通信,就是通过使用socket套接字来实现的,我们可以基于此,来实现一些应用层协议,以达到不同主机之间的进程通信的目的。这一点,除了普通的网络应用程序(如聊天工具和游戏等)之外,在分布式系统中,也有着很大的用途,比如机器学习需要在多台计算机中进行并行计算的时候。

服务器/客户机模型(C/S模型)如图:

TCP服务器/客户端模型

分类
Python学习

python3.5 安装使用MySQL支持库

用Python做机器学习、大数据、数据挖掘、爬虫什么,基本上都会用到数据库,而我们一般使用的是SQL数据库,即关系数据库。我们最常用的两款关系数据库就是MySQL和SQL Server。本文会介绍如何在Python3下安装对MySQL进行调用的支持库。

分类
Python学习

Python实现多进程运行

在这篇文章里,我将列出一种python下的实现多进程并发执行程序的方法。我们经常需要通过并发来实现一些功能,为了加速计算或者最大程度利用CPU等等。Python中有一种方法可以实现多进程并发执行,我们需要导入python库“multiprocessing”。

分类
Python学习

Python关键字yield用法

我这篇文章将简单记录一下python关键字yield的用法。因为写代码需要,我看到了别人的部分代码中有用到yield关键字。作为习惯了C类语言的人,第一次看到这种关键字会感到很迷茫,不知道是用来做什么的,可是偏偏很多时候会用到这样的代码。

分类
ASRT Python学习 智能语音技术 程序设计

Python读取wav格式文件

我们经常需要处理wav格式的文件,读取其中的声音信号和相关参数,来做一些事情。如果我们使用C++来做,那么需要对文件的底层存储格式有一个透彻的了解才行,而且考虑不周还有可能出Bug;如果使用MatLab来做,虽然只有一行代码就可以读取文件,但是MatLab语言自身的局限性使得写出的代码难以在实际中投入使用。因此,兼顾简介易用和实用性,用Python来做就显得比较好了。

分类
Python学习

Python缩进问题

众所周知,python是一个基于缩进而不是大括号的语言,因而写python代码有需要使用游标卡尺的梗。我在写python代码的时候,没少掉进这个坑里面。基本上只要前一行结尾出现冒号,下一行必然添加一个单位的缩进,直到块结束。我们可以使用空格(Space)和制表符(Tab)来进行缩进,然而这里面有一些会经常遇到的坑。