魔术命令%timeit非常适合以交互方式测量代码执行时间.但是,我想得到结果,%timeit以便绘制结果.timeit.timeit允许这样做,但没有迭代次数的自动缩放和结果的规范化%timeit.
是否有一个内置函数可以计算一段代码,它还会自动调整它执行的迭代次数,并返回一个标准化结果?
我给了一个具有任意数量轴的数组,我想迭代,说出它们的第一个'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)
但显然我不能像这样索引数组,即使用另一个包含索引的数组.
我有一个类的集合,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() …
我想创建一个装饰器,它可以环绕具有不同数量变量的函数。例如,下面我有两个函数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) 在绘图中,我想axhline在一个特定的绘图中绘制一个用其值注释的绘图,有点像此处的轮廓绘图示例。例如,看起来像:--------- 0.13 -----------。
这可能matplotlib吗?