Articles of vectorización

Numpy: asignando valores a una matriz 2d con una lista de índices

Tengo una matriz numpy 2d (piense en una imagen en escala de grises). Quiero asignar cierto valor a una lista de coordenadas a esta matriz, de manera que: img = np.zeros((5, 5)) coords = np.array([[0, 1], [1, 2], [2, 3], [3, 4]]) def bad_use_of_numpy(img, coords): for i, coord in enumerate(coords): img[coord[0], coord[1]] = 255 return […]

Generalizar el astackmiento de los vecinos de los elementos del arreglo en un arreglo en 3D.

Preparar Dada una matriz 2D, me gustaría crear una matriz 3D donde los valores a lo largo de la tercera dimensión en (es decir, stacked[row, col, :] ) son los vecinos aplanados de la matriz original en [row, col] . Me gustaría generalizar este proceso para manejar un radio de búsqueda arbitrario (pero razonable). Investigaciones […]

¿Cómo crear rápidamente una matriz de N matrices 3×3 a partir de 9 matrices de tamaño N?

Supongamos que tengo 9 matrices (A, B, C, .. J) de tamaño N. Quiero crear una nueva matriz de matrices N 3×3 tal que, por ejemplo, matrices[i] = [[A[i], B[i], C[i]], [D[i], E[i], F[i]], [G[i], H[i], J[i]]] Una solución simple es agregar cada entrada a las matrices matriz en un bucle for como: for i […]

La confusión acerca de los números se aplican a lo largo de los ejes y enumera las comprensiones.

Muy bien, así que me disculpo con anticipación si solo estoy preguntando algo tonto, pero realmente pensé que entendía cómo funcionaba apply_along_axis . Simplemente me encontré con algo que podría ser un caso de vanguardia que simplemente no consideré, pero me desconcierta. En resumen, este es el código que me confunde: class Leaf(object): def __init__(self, […]

Error de difusión al vectorizar misc.imresize ()

Tengo una matriz numpy A compuesta de varias imágenes del mismo tamaño [N_images, width, height, 3]. Quiero aplicar misc.imresize() a todos y cada uno de ellos de la manera más rápida posible. Así lo definí: def myfunc(x): return misc.imresize(x,(wanted_width,wanted_height)) y luego hice vfunc=np.vectorize(my_func) pero cuando lo bash test=vfunc(A) Recibo un error no adecuado de forma […]

Multiplica dos matrices por columnas con python.

Tengo dos matrices: A = [a11 a12 a21 a22] B = [b11 b12 b21 b22] Y quiero multiplicar todas sus columnas (sin bucles) para obtener la matriz: C =[a11*b11 a11*b12 a12*b11 a12*b12 a21*b21 a21*b22 a22*b21 a22*b22] Lo he intentado con >>> C = np.prod(A,B,axis=0) pero prod no acepta dos matrices de entrada. Ni np.matrix.prod. Gracias […]

Vectorizar la expansión de matriz numpy

Estoy tratando de encontrar una manera de vectorizar una operación donde tomo 1 matriz numpy y aumente cada elemento en 4 puntos nuevos. Actualmente lo estoy haciendo con Python loop. Primero déjame explicarte el algoritmo. input_array = numpy.array([1, 2, 3, 4]) Quiero ‘expandir’ o ‘extender’ cada elemento de esta matriz a 4 puntos. Entonces, el […]

Numpy binary matrix – obtiene filas y columnas de elementos True

Tengo una matriz 2D de números binarios, por ejemplo, import numpy as np arr = np.array([ # Col 0 Col 1 Col 2 [False, False, True], # Row 0 [True, False, False], # Row 1 [True, True, False], # Row 2 ]) Quiero la fila y columna de cada elemento True en la matriz: [(0, […]

Vectorización de una operación de corte de Numpy

Digamos que tengo un vector Numpy, A = zeros(100) y lo divido en subvectores por una lista de puntos de interrupción que se indexan en A , por ejemplo, breaks = linspace(0, 100, 11, dtype=int) Entonces, el i -ésimo subvector se encuentra entre los índices breaks[i] (inclusive) y breaks[i+1] (exclusivo). Los descansos no están necesariamente […]

Vectorización triple para bucle en Python / Numpy con diferentes formas de matriz

Soy nuevo en Python / Numpy y estoy tratando de mejorar mi triple por bucle en un cálculo más eficiente, pero no puedo dejar de pensar en cómo hacerlo. Los cálculos se realizan en una cuadrícula del tamaño (25,35) y las formas de las matrices son: A = (8760,25,35) B = (12,25,35) Las primeras dimensiones […]