Articles of numpy broadcasting

¿Cuáles son las reglas para comparar arrays numpy usando ==?

Por ejemplo, tratando de dar sentido a estos resultados: >>> x array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> (x == np.array([[1],[2]])).astype(np.float32) array([[ 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.], [ 0., 0., 1., 0., 0., 0., 0., 0., 0., 0.]], dtype=float32) >>> (x == np.array([1,2])) False >>> (x […]

Numpy: Reemplace todos los valores de la matriz con la media de sus elementos adyacentes

Tengo un ndarray, y quiero reemplazar cada valor de la matriz con la media de sus elementos adyacentes. El siguiente código puede hacer el trabajo, pero es muy lento cuando tengo 700 arreglos con forma (7000, 7000), así que me pregunto si hay mejores formas de hacerlo. ¡Gracias! a = np.array(([1,2,3,4,5,6,7,8,9],[4,5,6,7,8,9,10,11,12],[3,4,5,6,7,8,9,10,11])) row,col = a.shape new_arr […]

Broadcast 1D array contra 2D array para lexsort: Permutación para clasificar cada columna independientemente al considerar otro vector

Considera la matriz a np.random.seed([3,1415]) a = np.random.randint(10, size=(5, 4)) a array([[0, 2, 7, 3], [8, 7, 0, 6], [8, 6, 0, 2], [0, 4, 9, 7], [3, 2, 4, 3]]) Puedo crear b que contiene la permutación para ordenar cada columna. b = a.argsort(0) b array([[0, 0, 1, 2], [3, 4, 2, 0], [4, […]

NumPy indexing: difusión con matrices booleanas

En relación con esta pregunta , me encontré con un comportamiento de indexación a través de matrices booleanas y de difusión que no entiendo. Sabemos que es posible indexar una matriz NumPy en 2 dimensiones utilizando índices enteros y difusión. Esto se especifica en los documentos : a = np.array([[ 0, 1, 2, 3], [ […]

Cuando la transmisión es una mala idea? (numpy)

El término difusión describe cómo Numpy trata las matrices con diferentes formas durante las operaciones aritméticas. Example 1: from numpy import array a = array([1.0,2.0,3.0]) b = array([2.0,2.0,2.0]) # multiply element-by-element () a * b >> array([ 2., 4., 6.]) Example 2 : from numpy import array a = array([1.0,2.0,3.0]) b = 2.0 # broadcast […]

Reglas de difusión de matriz Numpy

Tengo algunos problemas para entender las reglas para la transmisión de matriz en Numpy. Obviamente, si realiza la multiplicación de elementos en dos matrices de las mismas dimensiones y forma, todo está bien. Además, si multiplicas una matriz multidimensional por un escalar, funciona. Esto lo entiendo. Pero si tiene dos matrices N-dimensionales de diferentes formas, […]

Resta cada fila de la matriz A de cada fila de la matriz B sin bucles

Dados dos arrays, A (forma: MXC) y B (forma: NXC), ¿hay una manera de restar cada fila de A de cada fila de B sin usar bucles? La salida final sería de forma (MNXC). Ejemplo A = np.array([[ 1, 2, 3], [100, 200, 300]]) B = np.array([[ 10, 20, 30], [1000, 2000, 3000], [ -10, […]

¿Qué está pasando detrás de este comportamiento de selección numpy?

Respondiendo a esta pregunta , algunos otros y yo nos equivocamos al considerar que lo siguiente funcionaría: Digamos que uno tiene test = [ [ [0], 1 ], [ [1], 1 ] ] import numpy as np nptest = np.array(test) ¿Cuál es la razón detrás >>> nptest[:,0]==[1] array([False, False], dtype=bool) mientras uno tiene >>> nptest[0,0]==[1],nptest[1,0]==[1] […]

Use numpy.frompyfunc para agregar difusión a una función de python con argumento

Desde una matriz como db (que será aproximadamente (1e6, 300) ) y una mask = [1, 0, 1] vector, defino el objective como un 1 en la primera columna. Quiero crear un vector de out que consiste en unos donde la fila correspondiente en db coincide con la mask y el target==1 , y ceros […]

Explicación de Numpy Broadcasting Answer

Recientemente publiqué una pregunta aquí que fue respondida exactamente como lo pedí. Sin embargo, creo que sobreestimé mi capacidad para manipular aún más la respuesta. Leí el documento de transmisión y seguí algunos enlaces que me llevaron hasta el año 2002 sobre la transmisión de números. He utilizado el segundo método de creación de matrices […]