比如求一个平面稳态导热问题,控制方程就是拉普拉斯方程:
(我才发现原来有[插入公式]这个功能)
按照最简单的毅种循环来写就是:
def laplace(u): nx, ny = u.shape for i in xrange(1,nx-1): for j in xrange(1, ny-1): u[i,j] = ((u[i+1, j] + u[i-1, j]) * dy2 + (u[i, j+1] + u[i, j-1]) * dx2) / (2*(dx2+dy2))
你们都不知道numexpr的么←_←
比numpy还黑的科技→_→
虽然能用的运算没多少吧但是对大矩阵的整体运算还是很快的←_←
最近正好在学numpy这个模块。题主可以看看这个教程,不是很全,但是科学计算方面还是有不少东西的:NumPy-快速处理数据
引用教程中的代码:
import time import math import numpy as np x = [i * 0.001 for i in xrange(1000000)] # 初始化数组0.000~999.999 start = time.clock() for i, t in enumerate(x): # 用循环计算正弦值 x[i] = math.sin(t) print "math.sin:", time.clock() - start x = [i * 0.001 for i in xrange(1000000)] x = np.array(x) # 初始化矩阵(这里是一维) start = time.clock() np.sin(x,x) # numpy的广播计算(代替循环) print "numpy.sin:", time.clock() - start # 输出 # math.sin: 1.15426932753 # numpy.sin: 0.0882399858083
用numpy, Cython, 或者 weave
Speed up Python
SciPy官网有关于如何提高Python Performance的教程
PerformancePython
用Pyrex/Cython或者weave基本上可以达到C++的速度。
Laplace的例子,500*500矩阵,100次循环。
numpy和pandas.DataFrame的矩阵运算可以广播,可以map。
第一个技巧是,用map和lambda表达式来生成你要的迭代参数,比如生成一个平方表:map(lambda x: x*x, xrange(100)),这是个黑科技,可以很快速的生成你需要的循环参数;
第二个技巧是,熟练使用矩阵掩膜(mask)来简化循环,比如把矩阵a中小于100的值都置零:a[a<100] = 0,比循环快很多;
第三个技巧是,多使用各种库,如numpy, scipy(signal库简直好顶赞),如果你做图像,opencv库是唯一的选择。
大致是这样,实际应用中更多的是前两个trick混合使用。
想要快,就内嵌C,Python是解释性语言,会比较慢。
有成熟的计算软件时用的C/C+++python的模式,核心算法和耗时最多的逻辑用C/C++,其他用python.

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Dreamweaver Mac版
시각적 웹 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전
