相关疑难解决方法(0)

Python中的加速MSD计算

这是对社区的一个呼吁,看看是否有人有想法提高这个MSD计算实施的速度.它主要基于此博客文章的实现:http://damcb.com/mean-square-disp.html

目前,对于500个点的2D轨迹,当前实施需要大约9秒.如果你需要计算很多轨迹,这真的太过分了......

我没有尝试并行化(使用multiprocess或者joblib),但我觉得创建新进程对于这种算法来说太重了.

这是代码:

import os

import matplotlib
import matplotlib.pyplot as plt

import pandas as pd
import numpy as np

# Parameters
N = 5000
max_time = 100
dt = max_time / N

# Generate 2D brownian motion

t = np.linspace(0, max_time, N)
xy = np.cumsum(np.random.choice([-1, 0, 1], size=(N, 2)), axis=0)
traj = pd.DataFrame({'t': t, 'x': xy[:,0], 'y': xy[:,1]})
print(traj.head())

# Draw motion
ax = traj.plot(x='x', y='y', alpha=0.6, legend=False)

# Set limits
ax.set_xlim(traj['x'].min(), …
Run Code Online (Sandbox Code Playgroud)

physics numpy python-3.x pandas

5
推荐指数
2
解决办法
2316
查看次数

标签 统计

numpy ×1

pandas ×1

physics ×1

python-3.x ×1