小编Mar*_*ilk的帖子

代码中的%timeit等价物

魔术命令%timeit非常适合以交互方式测量代码执行时间.但是,我想得到结果,%timeit以便绘制结果.timeit.timeit允许这样做,但没有迭代次数的自动缩放和结果的规范化%timeit.

是否有一个内置函数可以计算一段代码,它还会自动调整它执行的迭代次数,并返回一个标准化结果?

python timing

7
推荐指数
2
解决办法
1719
查看次数

迭代numpy数组的第一个d轴

我给了一个具有任意数量轴的数组,我想迭代,说出它们的第一个'd'.我该怎么做呢?

最初我以为我会创建一个包含我想要遍历的所有索引的数组,使用

i = np.indices(a.shape[:d])
indices = np.transpose(np.asarray([x.flatten() for x in i]))
for idx in indices:
    a[idx]
Run Code Online (Sandbox Code Playgroud)

但显然我不能像这样索引数组,即使用另一个包含索引的数组.

python arrays numpy

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

Mixin 覆盖继承的方法

我有一个类的集合,A1、A2、A3 等,它们都有方法m()。我也有带方法的 B 类m()。我希望能够轻松创建m()从类 B调用的类 C1、C2、C3 等,同时还具有 A1、A2、A3 等的所有其他属性...

但是,我遇到的问题是,在类 C1 中m(),类 B 中的方法应该m()从类 A1 中调用。

我很难用语言表达我想要的东西,但我目前正在考虑这样做的方式是使用 mixins。C1 将从 A1 继承,并混入 B。但是,我不知道如何m()在 B 中m()从 A 类之一中调用正确的。

所以,我的两个问题:

  • 我正在尝试做的事情有名字吗?
  • 这样做的正确方法是什么?

编辑:根据要求,一个具体的例子:m(p)A1、A2、A3 等中的方法都计算矩阵M,对于某些参数p。我想创建类 C1、C2、C3 等,它们的行为方式与 A1、A2、A3 相同,除了method m()。新方法m()需要一个更长的参数列表p,大小为 N,我们计算A*.m()N 次,然后返回总和。

用于计算m()所有 A* 类的总和的代码是相同的。在上面建议的混合解决方案中,求和代码将在 B 中。 B 和 A1 都将被继承以形成 C1。然而,该方法m() …

python inheritance multiple-inheritance mixins

4
推荐指数
1
解决办法
6152
查看次数

使用装饰器包装带有可变数量参数的函数

我想创建一个装饰器,它可以环绕具有不同数量变量的函数。例如,下面我有两个函数abcand abcd,分别带有2 个和 3 个参数。我希望包装器采用可变数量的参数来处理这个问题。但是,当我运行代码时,我得到TypeError: _wrapper() takes exactly 0 arguments (2 given),好像**kwargs被忽略了。

这是为什么,我该如何解决?

def dec(function):
    def _wrapper(**kwargs):
        print len(kwargs)
        function(**kwargs)
    return _wrapper

@dec
def abc(a, b):
    return a*b

@dec
def abcd(a, b, c):
    return a*b*c
Run Code Online (Sandbox Code Playgroud)

python python-decorators

3
推荐指数
1
解决办法
2695
查看次数

matplotlib:我可以用文本打断“ axhline”吗?

在绘图中,我想axhline在一个特定的绘图中绘制一个用其值注释的绘图,有点像此处的轮廓绘图示例。例如,看起来像:--------- 0.13 -----------

这可能matplotlib吗?

python plot matplotlib

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