Dada una array con la mayoría de sus elementos como 0, necesitamos convertir esta array en una array dispersa en Python.
Ejemplo:
Entrada: Array:
1 0 0 0
0 2 0
0 0 0 3 0
0 0 0 4
5 0 0 0Salida: array dispersa:
0 0 1
1 1 2
2 2 3
3 3 4
4 0 5Explicación:
Aquí, la Array se representa mediante una lista 2D y la Array Dispersa se representa en el formulario Valor de columna de filaEn la array dispersa, la primera fila
0 1 1
indica que el valor de la array en la fila 0 y la columna 1 es 1.
Acercarse:
- Cree una lista vacía que representará la lista de array dispersa.
- Iterar a través de la array 2D para encontrar elementos distintos de cero.
- Si un elemento no es cero, cree una lista vacía temporal.
- Agregue el valor de la fila, el valor de la columna y el elemento distinto de cero en la lista temporal.
- Ahora agregue la lista temporal a la lista de arrays dispersas de modo que la lista temporal actúe como una sublista de la lista de arrays dispersas.
- Después de obtener todos los elementos distintos de cero de la array, muestre la array dispersa.
El enfoque anterior se ha utilizado en convertToSparseMatrix()
función en el siguiente programa:
# Python program to convert a # matrix to sparse matrix # function display a matrix def displayMatrix(matrix): for row in matrix: for element in row: print(element, end =" ") print() # function to convert the matrix # into a sparse matrix def convertToSparseMatrix(matrix): # creating an empty sparse # matrix list sparseMatrix =[] # searching values greater # than zero for i in range(len(matrix)): for j in range(len(matrix[0])): if matrix[i][j] != 0 : # creating a temporary # sublist temp = [] # appending row value, column # value and element into the # sublist temp.append(i) temp.append(j) temp.append(matrix[i][j]) # appending the sublist into # the sparse matrix list sparseMatrix.append(temp) # displaying the sparse matrix print("\nSparse Matrix: ") displayMatrix(sparseMatrix) # Driver's code # initializing a normal matrix normalMatrix =[[1, 0, 0, 0], [0, 2, 0, 0], [0, 0, 3, 0], [0, 0, 0, 4], [5, 0, 0, 0]] # displaying the matrix displayMatrix(normalMatrix) # converting the matrix to sparse # displayMatrix convertToSparseMatrix(normalMatrix)
Producción:
0 1 0 0 0 0 2 0 0 3 0 0 0 0 5 0 0 0 0 4 Sparse Matrix: 0 0 1 1 1 2 2 2 3 3 3 4 4 0 5
Publicación traducida automáticamente
Artículo escrito por riturajsaha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA