jjzjj

python - 使用优化模块的 Scipy 错误。将数组转换为 Fortran 失败

尝试使用scipy的优化模块来查找使用slsqp的函数的最小值,但我遇到了一些问题。调用该函数的实际代码如下所示:defminimizeWebEnergyLost(x,parameters):"""values=[theta,velocity]"""firstTerm=lambdavalues:(x*values[1]**2/2.0)sqrtTerm=lambdavalues:np.sqrt((parameters.gravity**2*x**2)/(4*values[1]**4*np.cos(values[0])**4)+1)secondTerm=lambdavalues:(valu

python - 通过 f2py : How to profile? 对 Python 的 Fortran 扩展

我正在使用通过f2py(第2版)编译的Fortran(gfortran4.4.7)编写的Python(2.7.2)扩展。我可以使用cProfile分析Python部分,但结果没有提供有关Fortran函数的任何信息。相反,时间归因于调用Fortran函数的Python函数。我已经为我构建的所有Fortran对象启用了“-pg-O”标志,并在f2py调用中通过以下方式创建了共享对象:f2py--opt="-pg-O"...非常感谢任何有关如何获取Fortran信息的提示。如果有人使用类似的设置,使用不同的分析器,我也会感兴趣。 最佳答案

python - 如何编译用于 FORTRAN 的 Python 脚本?

虽然我找到了很多关于这个问题的答案和讨论,但我无法找到适合我的情况的解决方案。在这里:我有一个用FORTRAN编写的主程序。我得到了一组非常有用的python脚本。我的目标是从我的主FORTRAN程序访问这些python脚本。目前,我只是这样调用FORTRAN中的脚本:调用系统('pythonpyexample.py')数据从.dat文件读取并写入.dat文件。这就是python脚本和主要FORTRAN程序相互通信的方式。我目前正在我的本地机器上运行我的代码。我安装了带有numpy、scipy等的python。我的问题:代码需要在远程服务器上运行。对于严格的FORTRAN代码,我在本地

python - 将 fortran double 格式读入 python

我正在尝试将Fortrandouble(如1.2345D+02)读入python,但出现以下错误:>>>float('1.2345D+02')Traceback(mostrecentcalllast):File"",line1,inValueError:invalidliteralforfloat():1.2345D+02按照PythonscientificnotationusingDinsteadofE上的建议进行操作,我试过numpy但我也得到了同样的错误:importnumpy>>>numpy.float("1.2345D+02")Traceback(mostrecentcall

python - 将 SciPy 编译为 Android - 是否已完成,关于如何将 FORTRAN 代码编译为 Android Arm 的任何帮助

对于一个项目,我正在将一个使用SciPy的科学Python应用程序移植到Android。我目前正在使用https://github.com/kivy/python-for-android构建代码。NumPy可以构建,但SciPy被证明是一个真正的麻烦。与devenv和kivypythonforandroid打交道,我不得不将SciPyC库编译为androidARM,但现在,fortran库仍有待构建,我不知所措。如有任何帮助,我们将不胜感激。 最佳答案 如果这是一个非答案的道歉:首先,如果你只是玩玩我建议在armchrootjail

python - 将 python 回调函数传递给 Fortran 子例程的开销是多少?

我刚刚使用F2PY将Fortran90子例程包装到python。这里的微妙之处在于Fortran子例程aslo将python回调函数作为其参数之一:SUBROUTINEf90foo(pyfunc,a)real(kind=8),intent(in)::a!f2pyintent(callback)pyfuncexternalpyfunc!f2pyreal*8y,x!f2pyy=pyfunc(x)!***debugbegins***print*,'StartLoop'doi=1,1000p=pyfunc(a)enddototal=etime(elapsed)print*,'End:total

python - 使用 python-ctypes 将 fortran 与 python 接口(interface)

经历:fortran大约3个月python-中级:在此之前从未在python中使用过ctypes模块我一直在寻找一种方法来使用fortran代码来完成我在python方面的博士工作——随后使用matplotlib进行可视化的动态计算。THISPOST帮助(这表明可以使用ctypes模块在python中使用/调用fortran代码-并且考虑到fortran函数具有绑定(bind)到它们的备用名称-这在逻辑上对我来说很有意义,尽管我不知道它是如何工作的细节。但我们确实明智地选择了我们的战斗!)。那么thisSOpost也处理从python调用fortran函数。下一个合乎逻辑的步骤是查找d

python - python 3.3 与 fortran 77 相比的文件处理速度

这个问题很奇怪,我知道。我有一个Fortran77代码库,它大部分解析大型非二进制文件,对这些文件进行一些操作,然后进行大量文件写入。代码库不进行任何矩阵操作或数字运算。这个遗留代码是fortran语言,因为许多其他代码库确实需要严格的数字运算。这最初只是用fortran编写的,因为有fortran的知识。我的建议是完全用python(最有可能是3.3)重写它。Fortran代码的维护和您想象的一样困难,测试也和您想象的一样糟糕。显然python在这里会有很大帮助。在python中的文件处理速度方面是否有任何性能影响(甚至增益)?目前该系统的大部分运行时间都在读取/写入文件。提前致谢

python - Fortran 的 "implicit none"在 Python 中是否有等效项?

在Fortran中有一个语句Implicitnone当一个局部变量没有被声明但是被使用时会抛出一个编译错误。我知道Python是一种动态类型的语言,变量的范围可以在运行时确定。但我想避免在忘记初始化局部变量但在主代码中使用它时发生的某些意外错误。例如,以下代码中的变量x是全局变量,尽管我并没有这样打算:deftest():y=x+2#intendedthisxtobealocalvariablebutforgot#xwasnotinitializedprintyx=3test()所以我的问题是:是否有任何方法可以确保test()中使用的所有变量都是本地变量并且没有副作用。我正在使用Py

python - 在 Numpy 中设置 *默认* 数据顺序(C 与 Fortran)

我正在将一些MATLAB代码移植到Numpy。此任务包括从某些C++代码中剥离MEX,并将其替换为对Numpy的C-API的等效调用。一个问题是MEX代码将传入数据视为按Fortran排序的,因为这就是MATLAB对其数组排序的方式。另一方面,Numpy默认使用C排序。如果不完全重写C排序的MEX代码,我可以:(A)使用.copy('F')对进入C代码的数组重新排序,对使用.copy('C')(B)从一开始就按照Fortran顺序执行所有操作,弄清楚如何让numpy“模拟”MATLAB。选项A——目前已实现——工作正常但效率极低。有人知道如何使选项B起作用吗?