我正在用 Python 对 Argon 液体进行分子动力学模拟。我有一个稳定版本正在运行,但是它运行速度很慢,超过 100 个原子。我确定瓶颈是以下嵌套的 for 循环。这是一个放在从我的 main.py 脚本调用的函数中的力计算:
def computeForce(currentPositions):
potentialEnergy = 0
force = zeros((NUMBER_PARTICLES,3))
for iParticle in range(0,NUMBER_PARTICLES-1):
for jParticle in range(iParticle + 1, NUMBER_PARTICLES):
distance = currentPositions[iParticle] - currentPositions[jParticle]
distance = distance - BOX_LENGTH * (distance/BOX_LENGTH).round()
#note: this is so much faster than scipy.dot()
distanceSquared = distance[0]*distance[0] + distance[1]*distance[1] + distance[2]*distance[2]
if distanceSquared < CUT_OFF_RADIUS_SQUARED:
r2i = 1. / distanceSquared
r6i = r2i*r2i*r2i
lennardJones = 48. * r2i * r6i * (r6i - 0.5) …Run Code Online (Sandbox Code Playgroud) 我是Ubuntu和Python的新手,所以请耐心等待.我需要NumPy 1.7.1中包含的一些功能.然而,我的Ubuntu 12.04 LTE配备了NumPy 1.6.x,并且sudo apt-get update不会让它更高.
所以我去了SourceForge上,随后给出的说明这里的userguide.pdf.我已经做到了:
python setup.py build --fcompiler = gnu95
,即我(从它看起来成功)成功建立了NumPy 1.7.1.问题是:我现在该怎么办?我应该在某处移动一些目录,如果有,在哪里?该userguide.pdf刚刚停止,且没有给出任何详细信息.
这是我第一次尝试这个,所以请善待;-).
我正在尝试使用 Python 的分区和正则表达式清理文本字符串。例如:
testString = 'Tre Bröders Väg 6 2tr'
sep = '[0-9]tr'
head,sep,tail = testString.partition(sep)
head
>>>'Tre Br\xc3\xb6ders V\xc3\xa4g 6 2tr'
Run Code Online (Sandbox Code Playgroud)
头部仍然包含我要删除的2tr。我不太擅长正则表达式,但 [0-9] 不应该这样做吗?
我期望从这个例子中得到的输出是
head
>>> 'Tre Br\xc3\xb6ders V\xc3\xa4g 6
Run Code Online (Sandbox Code Playgroud) 我在我的 javadoc 中使用 package-info.java 文件。我试图从包中包含的类链接到同一个包的包信息。我尝试了几个受此Oracle 文档启发的选项。
例如,包是:
com.zombo.apps.api.stream
我在 com.orcsoftware.apps.api.stream.someClass 里面,正在写
@see com.zombo.apps.api.stream.package-info
该链接不会在 javadoc 中呈现。如何链接到包信息?
我是一名物理专业的学生,主要是用Python和Matlab编程,现在进入C语言以提高我的模拟性能.
简单的问题:Python中有指针吗?Matlab中有指针吗?如果是的话,我可以使用与C中类似的"轻松"吗?
我知道在Python和Matlab的高级别背后,有很多指针在起作用.问题是:我可以在Python或Matlab中明确地执行类似C代码的操作:
int *p;
int someValue = 1;
p = &someValue;
doSomethingForMe = callSomeFunction(p);
Run Code Online (Sandbox Code Playgroud)
我知道无论如何都可能没有意义(对于大多数应用程序).我只是想学习.
在里面 在C/C++中,函数fmin(x,y)返回两个参数x和y的最小值,如C++参考中所述.
但是,是否有类似的函数fminimum(a,b,c,... x,y,z)可用于查找相同数据类型的三个或更多个参数的最小值?
编辑:抱歉混淆.这个问题仅限于C,所以没有C++
属于这个问题的代码可以在github上找到.
我编写了一个脚本,用于解析csv文件中的地址,使用geopy查询相应的坐标(经度和纬度),并将输出写入JSON格式的文本文件.
将数据写入JSON文件的print语句不漂亮:
print('{"type": "Feature","geometry": { "coordinates": ['+str(location.longitude)+
','+str(location.latitude)+ ',],"type": "Point"},"properties": {"title": "dentist #1","privat": true,"marker-color": "#6699ff","marker-size": "large","marker-symbol": "dentist"}},')
time.sleep(0.01)
file.write('{"type": "Feature","geometry": { "coordinates": ['+str(location.longitude)+
','+str(location.latitude)+ ',],"type": "Point"},"properties": {"title": "dentist #1","privat": true,"marker-color": "#6699ff","marker-size": "large","marker-symbol": "dentist"}},')
Run Code Online (Sandbox Code Playgroud)
必须有更好(更简单)的方法来做到这一点.我已经开始谷歌了,但我对我发现的东西不满意.有没有人建议如何更优雅地处理Python中的JSON?