SciPy – Multiplicación de arrays dispersas

Las arrays dispersas son aquellas arrays que tienen la mayoría de sus elementos como ceros. scipy.sparse es el paquete de array dispersa SciPy 2-D para datos numéricos. Nos proporciona diferentes clases para crear arrays dispersas. csc_matrix y csr_matrix son las dos clases de este tipo. csc_matrix() se usa para crear una array de columna dispersa comprimida, mientras que csr_matrix() se usa para crear una array de fila dispersa comprimida.

Nota: Para obtener más información sobre cómo crear una array dispersa, visite Cómo crear una array dispersa en Python

Usamos el método multiplicar() proporcionado en las clases csc_matrix y csr_matrix para multiplicar dos arrays dispersas. Podemos multiplicar dos arrays del mismo formato (ambas arrays tienen formato csc o csr) y también de diferentes formatos (una array es csc y ​​otra es csr).

Ejemplo 1: Multiplicar dos arrays csc

Creamos dos arrays dispersas de formato de columna dispersa comprimida usando csc_matrix() y las multiplicamos usando el método de multiplicación().

Python3

# Python program to multpliply two 
# csc matrices using multiply()
  
# Import required libraries
import numpy as np
from scipy.sparse import csc_matrix
  
# Create first csc matrix A
row_A = np.array([0, 0, 1, 2 ])
col_A = np.array([0, 1, 0, 1])
data_A = np.array([4, 3, 8, 9])
  
cscMatrix_A = csc_matrix((data_A, 
                          (row_A, col_A)),
                        shape = (3, 3))
  
# print first csc matrix
print("first csc matrix: \n", 
      cscMatrix_A.toarray())
  
# Create second csc matrix B
row_B = np.array([0, 1, 1, 2 ])
col_B = np.array([0, 0, 1, 0])
data_B = np.array([7, 2, 5, 1])
  
cscMatrix_B = csc_matrix((data_B, (row_B, col_B)),
                        shape = (3, 3))
  
# print second csc matrix
print("second csc matrix:\n", cscMatrix_B.toarray())
  
# Multiply these matrices
sparseMatrix_AB = cscMatrix_A.multiply(cscMatrix_B)
  
# print resultant matrix
print("Product Sparse Matrix:\n",
      sparseMatrix_AB.toarray())

Producción:

Ejemplo 2. Multiplicar dos arrays csr

Creamos dos arrays dispersas de formato de fila dispersa comprimido usando csr_matrix() y las multiplicamos usando el método de multiplicación().

Python3

# Python program to multpliply two 
# csr matrices using multiply()
  
# Import required libraries
import numpy as np
from scipy.sparse import csr_matrix
  
# Create first csr matrix A
row_A = np.array([0, 0, 1, 2 ])
col_A = np.array([0, 1, 0, 1])
data_A = np.array([4, 3, 8, 9])
  
csrMatrix_A = csr_matrix((data_A, (row_A, col_A)),
                        shape = (3, 3))
  
# print first csr matrix
print("first csr matrix: \n", csrMatrix_A.toarray())
  
# Create second csr matrix B
row_B = np.array([0, 1, 1, 2 ])
col_B = np.array([0, 0, 1, 0])
data_B = np.array([7, 2, 5, 1])
  
csrMatrix_B = csr_matrix((data_B, (row_B, col_B)),
                        shape = (3, 3))
  
# print second scr matrix
print("second csr matrix:\n", csrMatrix_B.toarray())
  
# Multiply these matrices
sparseMatrix_AB = csrMatrix_A.multiply(csrMatrix_B)
  
# print resultant matrix
print("Product Sparse Matrix:\n",sparseMatrix_AB.toarray() )

 Producción:

Ejemplo 3. Multiplicar arrays csc y ​​csr

Creamos dos arrays dispersas, una de formato de columna dispersa comprimida y otra de formato de fila dispersa comprimida. Multiplícalos usando el método de multiplicar().

Python3

# Python program to multpliply  
# csc and csr matrices using multiply()
  
# Import required libraries
import numpy as np
from scipy.sparse import csc_matrix
  
# Create csc matrix
row_A = np.array([0, 0, 1, 2 ])
col_A = np.array([0, 1, 0, 1])
data_A = np.array([4, 3, 8, 9])
  
cscMatrix = csc_matrix((data_A, (row_A, col_A)),
                        shape = (3, 3))
  
# print  csc matrix
print("csc matrix: \n", cscMatrix.toarray())
  
# Create csr matrix 
row_B = np.array([0, 1, 1, 2 ])
col_B = np.array([0, 0, 1, 0])
data_B = np.array([7, 2, 5, 1])
  
csrMatrix_B = csc_matrix((data_B, (row_B, col_B)),
                        shape = (3, 3))
  
# print csr matrix
print("csr matrix:\n", csrMatrix_B.toarray())
  
# Multiply csc matrix with csr matrix
sparseMatrix = cscMatrix_A.multiply(csrMatrix_B)
  
# print resultant matrix
print("Product csc with csr Matrix:\n",
      sparseMatrix.toarray() )
  
# Multiply csr matrix with csc matrix
sparseMatrix = csrMatrix_A.multiply(cscMatrix_B)
  
# print resultant matrix
print("Product csr with csc Matrix:\n",
      sparseMatrix.toarray() )

Producción:

Publicación traducida automáticamente

Artículo escrito por shahidedu7 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 *