小编seb*_*piq的帖子

Python副本:如何继承默认的复制行为?

好的......这可能是一个愚蠢的问题......但我现在没有找到答案!

我需要实现一个对象的副本,我想要复制所有属性,除了我要完全控制副本的一两个属性.

以下是对象的标准复制行为:

>>> class test(object):
...     def __init__(self, arg):
...         self._a = arg
... 
>>> t = test(123999)
>>> t._a
123999
>>> tc = copy.copy(t)
>>> tc._a
123999
Run Code Online (Sandbox Code Playgroud)

这基本上意味着复制了所有属性.我想要做的是以下列方式重用此行为:

>>> class test(object):
...     def __init__(self, arga, argb):
...         self._a = arga
...         self._b = argb
...
...     def __copy__(self):
...         obj_copy = copy.copy(self) #NOT POSSIBLE OF COURSE => infinite recursion
...         obj_copy._b = my_operation(obj_copy._b)
...         return obj_copy
Run Code Online (Sandbox Code Playgroud)

我希望你明白了这一点:我想重新使用对象复制行为,但挂钩我自己的操作.有没有一个干净的方法来做到这一点(没有必要for attr_name in dir(self): ...)???

python copy

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

机器学习:找到与查询向量最接近的结果

我有数以千计的向量,每个向量约有20个特征.

给定一个查询向量和一组潜在匹配,我希望能够选择最佳N匹配.

我花了几天时间尝试回归(使用SVM),使用我自己创建的数据集训练模型:每个向量是查询向量和结果向量的串联,我给出一个得分(主观评估)介于0和1,0之间,完美匹配,1匹配最差匹配.

我没有取得很好的成绩,我相信一个原因可能是主观上很难分配这些分数.另一方面,更容易的是主观地对结果score进行排名(作为未知函数):

score(query, resultA) > score(query, resultB) > score(query, resultC)
Run Code Online (Sandbox Code Playgroud)

所以我认为这更像是一个学习排名的问题,我发现了Python的各种链接:

但我无法理解它是如何运作的.我真的很困惑所有的术语,成对排名等...(请注意,我对机器学习一无所知,因此我感觉有点迷失)等...所以我不明白如何应用这个我的问题.

有人可以帮我澄清事情,指出我想解决的问题的确切类别,甚至更好的我如何用Python实现这个(scikit-learn)?

python machine-learning scikit-learn supervised-learning

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

比较dict子类的实例

我有子类dict添加一个额外的方法(所以没有覆盖).

现在,我尝试比较其中两个子类,我得到一些奇怪的东西:

>>> d1.items() == d2.items()
True
>>> d1.values() == d2.values()
True
>>> d1.keys() == d2.keys()
True
>>> d1 == d2
False
Run Code Online (Sandbox Code Playgroud)

编辑

那真是太奇怪了......我根本不明白!任何有洞察力如何的人.eq实现了吗?

以下是所有代码:

# ------ Bellow is my dict subclass (with no overriding) :

class ClassSetDict(dict):

    def subsetget(self, klass, default=None):
        class_sets = set(filter(lambda cs: klass <= cs, self))
        # Eliminate supersets
        for cs1 in class_sets.copy():
            for cs2 in class_sets.copy():
                if cs1 <= cs2 and not cs1 is cs2:
                    class_sets.discard(cs2)
        try:
            best_match = list(class_sets)[0]
        except IndexError:
            return …
Run Code Online (Sandbox Code Playgroud)

python

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

算上站在我们Kinect面前的人数

我们正在使用Kinect进行交互式安装,我们需要知道有多少人在我们的安装前慢慢站立/行走.

我们最多可以有5个人,如果有更多我们不在乎.

为此,我们采用Kinect检测到的总体积,将其除以1人的近似体积.

count = Vtotal / Vperson;
Run Code Online (Sandbox Code Playgroud)

最后,为了使计数平滑,我们计算2秒的平均计数.

countAvg = Vtotalavg / Vperson;
Run Code Online (Sandbox Code Playgroud)

这适用于2-3人,但是当有更多时,blob重叠,并且总体积似乎不再相关.

有人知道我们如何解决这个问题,并且有一个可靠的计数...要么使用相同的blob体积方法,要么更聪明!

opencv kinect

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

Python:有一个模式的快捷方式[sth = get_sth(); 如果......:do_a_thing_on(某事)]

嗨!

我想一切都在问题中...我只是想知道在Python中是否有一种很好的方法来缩短这种模式:

something = get_something()
if something:
    do_a_thing_with(something)
Run Code Online (Sandbox Code Playgroud)

这意味着我if只想在变量something不是None(或False)的情况下进入上下文,然后在此上下文中自动设置此变量!是否有可能与with声明?

PS:我不想定义更多的东西......我正在寻找一些即时使用的声明?!

python

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

Python:'unittest'是否有"doctest"没有的东西?

问题很清楚,但是请注意,我不是在询问功能比较(已经有很多功能),我也不会问你喜欢哪一个!

我自己明确偏爱doctests,我将它们用于所有内容,即使这些不用于文档.但我想知道的是:你有什么可以用unitests做的,你不能用doctests做什么?

python doctest unit-testing

0
推荐指数
1
解决办法
337
查看次数

使用"for(i = 0; elem = array [i]; i ++)"迭代数组有什么风险吗?

由于我发现了这个片段,我经常使用它来迭代数组:

for (i = 0; elem = array[i]; i++) doStuff(elem);
Run Code Online (Sandbox Code Playgroud)

这显然是非常错误的,如果array可以包含任何计算结果为假('',undefined,null,0,false).但如果您确定不是这种情况,那么有人会看到使用此方法的另一个风险吗?

我问这个,因为它似乎并不常用,虽然它对我来说似乎真的很棒,所以我开始认为我缺少一个明显的缺点.

javascript

0
推荐指数
2
解决办法
78
查看次数