Rolling Matrix Rows indépendamment à l'aide de l'indexation avancée
Étant donné une matrice A et un tableau r contenant des valeurs de roll pour chaque ligne, votre objectif est de faites rouler chaque ligne de A indépendamment en utilisant ces valeurs de lancer.
L'approche la plus efficace pour y parvenir consiste à utiliser l'indexation avancée dans NumPy. Cette technique consiste à construire une nouvelle grille de maillage qui applique les valeurs de roulement aux colonnes de A. Voici comment vous pouvez l'implémenter :
<code class="python">import numpy as np # Define the matrix A and roll values r A = np.array([[4, 0, 0], [1, 2, 3], [0, 0, 5]]) r = np.array([2, 0, -1]) # Create a meshgrid of rows and negative shifted columns rows, column_indices = np.ogrid[:A.shape[0], :A.shape[1]] r[r < 0] += A.shape[1] column_indices = column_indices - r[:, np.newaxis] # Use advanced indexing to apply the roll values result = A[rows, column_indices] # Print the result print(result)</code>
Cette approche utilise des indices de colonne décalés négatifs pour garantir une indexation valide et applique les valeurs de roulement à travers la grille maillée, ce qui donne une matrice avec des lignes roulées indépendamment.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!