逐行迭代矩阵,对整行执行操作

时间:2017-05-06 09:50:31

标签: python matrix boolean

我有多个类的dict概率:

class 1: 0.1, 0.3, 0.6, 0.7
class 2: 0.3, 0.1, 0.4, 0.5
class 3: 0.3, 0.2, 0.8, 0.1

我有一个测试功能矩阵(例如在这种情况下只有4个)我想要识别正确的类。我已将此矩阵转换为布尔值,对于每个样本,我需要迭代所有类并保留True的概率,或者如果不是则找到补码。

例如:

T, T, F, T

应该返回

class 1: 0.1, 0.3, 0.4, 0.7
class 2: 0.3, 0.1, 0.6, 0.5
class 3: 0.3, 0.2, 0.2, 0.1

我已经编写了一些伪代码(我知道非常unpythonic),但我正在努力编写能满足我要求的代码。

For each row in test:
   for each row in class:
       if item in test == T
            append item in class (to some np.array)
       else:
            append (1 - item in class) (to some np.array)
   append some np.array to some matrix

非常感谢任何帮助。感谢

这是我执行上述操作的代码。我意识到我甚至无法排到[i] ......这是非常不完整的,我还有更多要写的东西。

def NB_predict(llhood, priors, X_test):
    X_test_b = np.array(X_test, dtype = bool)

    #init a temp holder for calculations 
    temp = np.zeros(X_test.shape[1])

    for row in X_test:
        mat = np.zeros((len(priors),X_test.shape[1]))
        for cls, ll_probs in llhood.items():    
            temp = np.zeros(X_test.shape[1])
            for i in np.arange(0, row):
                 if row[i] == True:
                      np.append(temp, ll_probs[i])
                 else: np.append(temp, (1-ll_probs[i]))
            np.append(mat, temp)
            return mat

0 个答案:

没有答案