python数值计算速度_提高python数值计算速度

以下是自己写的一个python脚本,用来进行高斯展开的,可发现运行速度特别慢,短板应该是数值计算,请问有没有什么方式可以加快它的运行速度?另外,我一直是自学的,代码肯定有许多不...

以下是自己写的一个python脚本,用来进行高斯展开的,可发现运行速度特别慢,短板应该是数值计算,请问有没有什么方式可以加快它的运行速度?另外,我一直是自学的,代码肯定有许多不足之处,还望指点...

#!/usr/bin/python3.4

import numpy as np

import sys

def gaussian(start=0, end=10, step=0.5, parameter=('sigma', 0.1), inp=[]):

if parameter[0]=='sigma':

sigma=parameter[1]

elif parameter[0]=='FWHM':

sigma=parameter[1]/(2*np.sqrt(2*np.log(2)))

else:

sigma=1

print('sigma is set to 1')

i=start

outp=[]

while i<=end:

height=0

for j in inp:

try:

height+=j[1]*np.exp(-(j[0]-i)**2/(2*sigma**2))/(sigma*np.sqrt(2*np.pi))

except IndexError:

height+=np.exp(-(j[0]-i)**2/(2*sigma**2))/(sigma*np.sqrt(2*np.pi))

outp.append((i, height))

i+=step

return outp

f=open(sys.argv[1], 'r')

lines=f.readlines()

f.close()

inp=[]

for i in range(len(lines)):

hang=[]

for j in lines[i].split():

hang.append(float(j))

inp.append(hang)

outp=gaussian(float(sys.argv[2]), float(sys.argv[3]), float(sys.argv[4]), (sys.argv[5], float(sys.argv[6])), inp)

text=''

for i in range(len(outp)):

text+='%15.9f%15.9f\n' % (outp[i][0], outp[i][1])

w=open('gaussian.dat', 'w')

w.write(text)

w.close()

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值