填充2D数组时避免嵌套循环

时间:2020-10-22 18:42:30

标签: python-3.x numpy for-loop set

我有一个n by n形状的矩阵,可以填充n=60,000

矩阵的值是二进制:0或1。

在约束条件下:

matrix_to_fill[i,j]=matrix_to_fill[j,i]= 1.0(仅当

'bool(set(elements[i]) @ set(elements[j])) == True'

我尝试过的事情:

'matrix_to_fill=np.zeros(n,n) # it is a symmetric matrix : 

 for i in np.arange(n):

        for j in np.arange(n):
           
            if i==j:  # diagonal elements are set to zero

                break

            else:

                bool_value = bool(set(element[i]) & set(element[j]))

                if bool_value:
                        matrix_to_fill[i][j]=1.0
                        matrix_to_fill[j][i] = 1.0'

怎么了?

太重,需要很长时间。它仍在运行超过1小时

任何提示,为避免嵌套循环并减少计算时间?

0 个答案:

没有答案