代码之家  ›  专栏  ›  技术社区  ›  Physkid

通过算法比较两个n x m数组之间的条目

  •  0
  • Physkid  · 技术社区  · 8 年前

    我对Python非常陌生,对各种函数的了解非常有限。

    我的目的是比较一个nxm数组中的每个条目与另一个nxm数组中的条目,对于所有整数n,m>1. 我希望Python返回另一个布尔值的nxm数组。

    想法:

    Python中数组中的条目表示为 array[i][j] 对于n中的i和m中的j。

    分别在n和m中的所有值上运行i和j。然后比较array\u 1[i][j]与array\u 2[i][j]。如果array\u 1[i][j]==array\u 2[i][j]或array\u 1[i][j]!=array\u 2[i][j],对于n和m中的一些i和j,分别返回“True”,否则返回“False”。

    然后将其结果(布尔值)馈送到空数组array\u 3中。

    导入numpy

    array_3 = []
    
    array_1 = [['Roy',80,75,85,90,95],
     ['John',75,80,75,85,100],
     ['Dave',80,80,80,90,95]]
    
    array_2 = [['Roy',80,75,75,80],
     ['John',75,60,75,75,90],
     ['Dave',50,80,70,90,85]]
    
    
    print(type(array_1))
    print(type(array_2))
    print(type(array_3))
    
    for array_1[i][j] in array_1:
        if array_1[i][j] == array_2[i][j]:
    

    从这里开始,我无法继续。 任何 提示 非常感谢。 无解决方案,除非在发布后至少24小时内

    编辑:

    import numpy
    
    array_1 = numpy.array([['Roy',80,75,85,90,95],
     ['John',75,80,75,85,100],
     ['Dave',80,80,80,90,95]])
    
    array_2 = numpy.array([['Roy',80,75,75,80],
     ['John',75,60,75,75,90],
     ['Dave',50,80,70,90,85]])
    
    arrayssize = [array_1.shape, array_2.shape]
    print(size)
    
    for x in range(3):
        for y in range(5): 
            array_3 = [True if array_1[x][y] == array_2[x][y] else False] 
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Onyx Caldin    8 年前

    您应该首先将第三个矩阵初始化为相应的大小。 以下是使用假值初始化大小为n的数组的示例:

    array_3 = [False for i in range(n)]
    

    现在,您应该能够初始化array\u 3,但请记住,您有一个矩阵,而不是数组。

    然后,根据“如果”结果,您可以使用True或False填充矩阵的正确索引:

    array_3[x][y] = comparisonResult