numpy数组和列表乘法,找到最大值及其索引

时间:2015-08-17 23:46:30

标签: python python-2.7

我知道这个问题可能会重复,但我尝试以多种方式调试我的代码,但仍然不知道它是什么问题。以下是我的代码。

var isTaken: Bool = false

         var query = PFQuery(className: "_User")
        query.whereKey("username", equalTo: usernameTxt.text)
        query.findObjectsInBackgroundWithBlock {
            (objects: [AnyObject]?, error: NSError?) in
            if error == nil {
                if (objects!.count > 0){
                    isTaken = true
                    let myAlert = SCLAlertView().showError("Woah There", subTitle: "username \(textField.text) is already taken", closeButtonTitle: "Got It")
                    myAlert.alertview.contentView.backgroundColor = UIColor(red:1.0, green:0.18, blue:0.18, alpha:1.0)
                    myAlert.alertview.circleBG.backgroundColor = UIColor(red:1.0, green:0.18, blue:0.18, alpha:1.0)
                    myAlert.alertview.labelTitle.textColor = UIColor.whiteColor()
                    myAlert.alertview.contentView.layer.borderColor = UIColor(red:1.0, green:0.18, blue:0.18, alpha:1.0).CGColor
                    myAlert.alertview.viewText.textColor = UIColor.whiteColor()
                    myAlert.alertview.viewText.backgroundColor = UIColor(red:1.0, green:0.18, blue:0.18, alpha:1.0)

                } else {
                    println("Username is available. ")
                }
            } else {
                println("error")
            }
        }

在另一个脚本中:

def myfunc(LUT,LUT_Prob,test):
    x = []
    y = []
    z = []
    x.extend(hamming_distance(test, LUT[i]) for i in range (len(LUT)))
    y = [(len(LUT[0])) - j for j in x]
    z = [a*b for a,b in zip(y,LUT_prob)]
    MAP = max(z)
    closest_index = z.index(max(z))
    return x, y, LUT_Prob, z, MAP, closest_index

输出结果为:

Winner = [] for j in range (0,5): Winner.append(myfunc(LUT1,LUT_Prob1,test[j])) print 'Winner = {}' .format(Winner)

注意:输出是返回值Winner = [([2, 4, 2, 4], [8, 6, 8, 6], [array([ 0.4, 0.2, 0.2, 0.2])], [[array([ 3.2, 1.6, 1.6, 1.6])]], [array([ 3.2, 1.6, 1.6, 1.6])], 0), ([1, 3, 1, 3], [9, 7, 9, 7], [array([ 0.4, 0.2, 0.2, 0.2])], [[array([ 3.6, 1.8, 1.8, 1.8])]], [array([ 3.6, 1.8, 1.8, 1.8])], 0), ([3, 5, 5, 3], [7, 5, 5, 7], [array([ 0.4, 0.2, 0.2, 0.2])], [[array([ 2.8, 1.4, 1.4, 1.4])]], [array([ 2.8, 1.4, 1.4, 1.4])], 0), ([3, 5, 3, 5], [7, 5, 7, 5], [array([ 0.4, 0.2, 0.2, 0.2])], [[array([ 2.8, 1.4, 1.4, 1.4])]], [array([ 2.8, 1.4, 1.4, 1.4])], 0), ([3, 3, 3, 1], [7, 7, 7, 9], [array([ 0.4, 0.2, 0.2, 0.2])], [[array([ 2.8, 1.4, 1.4, 1.4])]], [array([ 2.8, 1.4, 1.4, 1.4])], 0)],具有相同的顺序并重复5次。

我得到的错误: 1- x, y, LUT_Prob, z, MAP, closest_index不符合预期,期望值乘以zy元素,我得到的是将LUT_Prob的第一个元素乘以{{{ 1}}。 2- y应该只是一个值,在这种情况下是“3.2”,但是有一个数组。 在这种情况下,3 LUT_Prob是正确的,但是,如果“3.2”在其他地方MAP仍为“0”。

那么,有人可以帮忙吗?

0 个答案:

没有答案