【问题标题】:Python: loop over matrix to check for values in vector printing string + also row/column valuePython:循环矩阵以检查向量打印字符串中的值+还有行/列值
【发布时间】:2020-10-13 07:02:54
【问题描述】:

我有这个向量:

possibleGrades = np.array([-3,0,2,4,7,10,12])

还有这个矩阵:

matrix=np.array([[7,7,4],[12,10,10],[-3,7,2],[10,8,12],[nan,7,nan],[7,7,10],[4.5,nan,2],[2,12,4]])

然后是这段代码:

line, col = np.where(np.isin(matrixGrades, possibleGrades, invert=True))
print('Displaying incorrect or missing grades: \n')
[print(f'Incorrect or missing grade in row {line[i]} in column {col[i]}! Displaying the incorrect grade: {INSERT VALUE}.') for i in range(line.size)]

它应该将 4.5、8 和 nan(csv 文件中没有值)识别为不正确的值。

在这一行:[print(f'Incorrect or missing grade in row {line[i]} in column {col[i]}! Displaying the incorrect grade: {INSERT VALUE}.') for i in range(line.size)]

如何让它在行中显示完全不正确的值?我尝试插入{matrix[i]},但没有帮助。

我现在的输出:没有“INSERT VALUE”:

Displaying incorrect or missing grades: 

Incorrect or missing grade in row 3 in column 1! Displaying the incorrect grade: .
Incorrect or missing grade in row 4 in column 0! Displaying the incorrect grade: .
Incorrect or missing grade in row 4 in column 2! Displaying the incorrect grade: .
Incorrect or missing grade in row 6 in column 0! Displaying the incorrect grade: .
Incorrect or missing grade in row 6 in column 1! Displaying the incorrect grade: .

【问题讨论】:

    标签: python string loops matrix


    【解决方案1】:

    您的代码几乎是正确的。稍加修改即可获得所需的输出:

    import numpy as np
    
    possibleGrades = np.array([-3, 0, 2, 4, 7, 10, 12])
    matrix = np.array([[7, 7, 4], [12, 10, 10], [-3, 7, 2], [10, 8, 12],
                       [np.nan, 7, np.nan],
                       [7, 7, 10], [4.5, np.nan, 2], [2, 12, 4]])
    
    match = np.transpose(np.where(np.isin(matrix, possibleGrades, invert=True)))
    
    print('Displaying incorrect or missing grades:')
    for row, col in match:
        print(f"Incorrect or missing grade in row {row + 1} in"
              f"column {col + 1}! Displaying",
              f"the incorrect grade: {matrix[row, col]}.")
    

    要获得错误等级的值,只需使用先前获得的索引在 matrix 数组中进行评估。示例输出:

    Displaying incorrect or missing grades:
    Incorrect or missing grade in row 4 incolumn 2! Displaying the incorrect grade: 8.0.
    Incorrect or missing grade in row 5 incolumn 1! Displaying the incorrect grade: nan.
    Incorrect or missing grade in row 5 incolumn 3! Displaying the incorrect grade: nan.
    Incorrect or missing grade in row 7 incolumn 1! Displaying the incorrect grade: 4.5.
    Incorrect or missing grade in row 7 incolumn 2! Displaying the incorrect grade: nan.
    

    【讨论】:

    • 你真的是一个救生员!感谢您的时间和帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    相关资源
    最近更新 更多