小编Nic*_*ens的帖子

与Python/SciPy中的"quad"和"quadrature"集成

看完这个那个,它发生,我认为这两个"四"和"正交"应该是互换*,至少语法明智的.奇怪的是,似乎他们不是:

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)

python syntax

7
推荐指数
1
解决办法
3029
查看次数

Fortran通过f2py扩展到Python:如何配置?

我正在使用通过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信息的提示都非常受欢迎.

如果有人使用类似的设置,使用不同的分析器,我也会感兴趣.

python profiler fortran f2py cprofile

7
推荐指数
1
解决办法
564
查看次数

分配(而不是定义)__getitem__魔术方法会破坏索引

我有一个类似于这个(强烈简化)示例的包装类:

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)在两种情况下都有效...

为什么赋值版本不允许索引?

python indexing class wrapper magic-methods

6
推荐指数
1
解决办法
543
查看次数

Python 子模块与模块位于同一文件中

如果我当前有一个正在导入的文件:

from foo import f0
from foo.bar import f1
Run Code Online (Sandbox Code Playgroud)

我可以创建一个foo.py包含函数的文件f0来满足第一次导入的需要。

有什么方法可以满足同一文件中的第二次导入吗foo.py

python python-module python-import

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

Matplotlib 的 symlog(又名对称对数)刻度的起源是什么?

这实际上不是一个编程问题。而是历史性的一件事...


我想知道 Matplotlib 的symlog 或“对称对数”比例:

  • 它是 Matplotlib 的发明吗?
  • 有人在其他绘图工具中看到过类似的功能吗?数学教科书?别处?

为了完整起见,并且由于文档有点短:

本质上,symlog给出低于某个阈值的线性标度和高于某个阈值的对数标度。这允许绘制各种数字(如对数刻度),包括负数和零(这对于传统的对数刻度来说是不可能的)。

这里这里有一些例子。


按照@Paul 的建议,我继续询问Matplotlib 实现的原作者。他“没有发明这个概念”,但“相信它是根据用户请求实现的”。但他在 Matplotlib 邮件列表中找不到参考。

有人能指出这样的参考吗?这可能是非常有见地的。

python plot logarithm matplotlib scale

5
推荐指数
1
解决办法
2854
查看次数

使用 mpi4py 配置并行化 python 脚本

我有一个名为 main_parallel.py的python脚本mpi4py。我可以使用time表单来测量时间,cli但是,如何制作类似于 cProfile 的配置文件?我喜欢看到代码每个部分的调用次数。我不能使用 cProfile 因为它仅用于串行代码。

谢谢!

python parallel-processing profiler mpi4py

3
推荐指数
2
解决办法
1772
查看次数

没有真的是内置的吗?

我试图以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__...的一部分

  • 为什么它仍然可以评估?

  • 如果必须的话,我怎么能摆脱它呢?

python built-in nonetype

2
推荐指数
1
解决办法
216
查看次数