看完这个和那个,它发生,我认为这两个"四"和"正交"应该是互换*,至少语法明智的.奇怪的是,似乎他们不是:
from scipy.integrate import quad as q
#from scipy.integrate import quadrature as q
def myfunc(x):
return x
def integr():
return q(myfunc, 0, 1)[0]
print integr()
def myfunc2(x, y):
return x + y
def integr2(y):
return q(myfunc2, 0, 1, args=(y))[0]
#return q(myfunc2, 0, 1, args=[y])[0]
print integr2(10)
Run Code Online (Sandbox Code Playgroud)
...这个例子对于"quad"运行良好,但不适用于"正交" - 我最终得到:
Traceback (most recent call last):
File "./test.py", line 38, in <module>
print integr2(10)
File "./test.py", line 36, in integr2
return q(myfunc2, 0, 1, args=(y))[0]
File "/usr/lib/python2.6/dist-packages/scipy/integrate/quadrature.py", line …Run Code Online (Sandbox Code Playgroud) 我正在使用通过f2py(Ver.2)编译的Fortran(gfortran 4.4.7)编写的Python(2.7.2)扩展.
我可以使用Python配置文件cProfile,但结果不会提供有关Fortran函数的任何信息.相反,时间归因于调用Fortran函数的Python函数.
我为我构建的所有Fortran对象启用了"-pg -O"标志,并在f2py调用中通过以下f2py --opt="-pg -O"方式创建了共享对象:...
任何有关如何获取Fortran信息的提示都非常受欢迎.
如果有人使用类似的设置,使用不同的分析器,我也会感兴趣.
我有一个类似于这个(强烈简化)示例的包装类:
class wrap(object):
def __init__(self):
self._data = range(10)
def __getitem__(self, key):
return self._data.__getitem__(key)
Run Code Online (Sandbox Code Playgroud)
我可以像这样使用它:
w = wrap()
print w[2] # yields "2"
Run Code Online (Sandbox Code Playgroud)
我以为我可以通过改变这个来优化和摆脱一个函数调用:
class wrap(object):
def __init__(self):
self._data = range(10)
self.__getitem__ = self._data.__getitem__
Run Code Online (Sandbox Code Playgroud)
但是,我收到了
TypeError:'wrap'对象不支持索引
对于print w[2]后一版本的行.
直接调用该方法,即print w.__getitem__(2)在两种情况下都有效...
为什么赋值版本不允许索引?
如果我当前有一个正在导入的文件:
from foo import f0
from foo.bar import f1
Run Code Online (Sandbox Code Playgroud)
我可以创建一个foo.py包含函数的文件f0来满足第一次导入的需要。
有什么方法可以满足同一文件中的第二次导入吗foo.py?
这实际上不是一个编程问题。而是历史性的一件事...
我想知道 Matplotlib 的symlog 或“对称对数”比例:
为了完整起见,并且由于文档有点短:
本质上,symlog给出低于某个阈值的线性标度和高于某个阈值的对数标度。这允许绘制各种数字(如对数刻度),包括负数和零(这对于传统的对数刻度来说是不可能的)。
按照@Paul 的建议,我继续询问Matplotlib 实现的原作者。他“没有发明这个概念”,但“相信它是根据用户请求实现的”。但他在 Matplotlib 邮件列表中找不到参考。
有人能指出这样的参考吗?这可能是非常有见地的。
我有一个名为 main_parallel.py的python脚本mpi4py。我可以使用time表单来测量时间,cli但是,如何制作类似于 cProfile 的配置文件?我喜欢看到代码每个部分的调用次数。我不能使用 cProfile 因为它仅用于串行代码。
谢谢!
我试图以eval(相对)安全的方式使用Python(2.7).因此,我定义了:
def safer_eval(string):
"""Safer version of eval() as globals and builtins are inaccessible"""
return eval(string, {'__builtins__': {}})
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,以下内容不再起作用:
print safer_eval("True")
NameError: name 'True' is not defined
Run Code Online (Sandbox Code Playgroud)
但是,我仍然可以评估一个"None"字符串:
print safer_eval("None")
None
Run Code Online (Sandbox Code Playgroud)
那么,None不是内置的吗?他们至少都是__builtin__...的一部分
为什么它仍然可以评估?