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