Programa de Python para convertir una array en una array dispersa

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 0

Salida: array dispersa:
0 0 1
1 1 2
2 2 3
3 3 4
4 0 5

Explicación:
Aquí, la Array se representa mediante una lista 2D y la Array Dispersa se representa en el formulario Valor de columna de fila

En la array dispersa, la primera fila 0 1 1indica que el valor de la array en la fila 0 y la columna 1 es 1.

Acercarse:

  1. Cree una lista vacía que representará la lista de array dispersa.
  2. Iterar a través de la array 2D para encontrar elementos distintos de cero.
  3. Si un elemento no es cero, cree una lista vacía temporal.
  4. Agregue el valor de la fila, el valor de la columna y el elemento distinto de cero en la lista temporal.
  5. 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.
  6. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *