Articles of numpy broadcasting

Difusión Numpy

¿Qué pasa cuando hago esta operación en Numpy? a = np.ones([500,1]) b = np.ones([5000,])/2 c = a + b # a.shape (500,1) # b.shape (5000, ) # c.shape (500, 5000) Me está costando entender qué está sucediendo realmente en esta transmisión.

Cómo evitar que la transmisión numpy se transmita al crear una matriz de objetos de matrices de diferentes formas

Intento almacenar una lista de arrays de diferentes formas como dtype=object array usando np.save (Estoy consciente de que solo puedo np.save la lista pero tengo mucha curiosidad sobre cómo hacerlo). Si hago esto: import numpy as np np.save(‘test.npy’, [np.zeros((2, 2)), np.zeros((3,3))]) funciona. Pero esto: np.save(‘test.npy’, [np.zeros((2, 2)), np.zeros((2,3))]) Me da un error ValueError: could not […]

NumPy ndarray broadcasting – forma (X,) vs (X, 1) para operar con (X, Y)

Tengo un NumPy ndarray que tiene forma (32, 1024) y tiene 32 medidas de señal que me gustaría combinar en un solo arreglo de 1024 elementos de largo, con un peso diferente para cada uno de los 32. Estaba usando numpy.average pero mi los pesos son complejos y el average realiza una normalización de los […]

¿Difusión de elementos para comparar dos matrices NumPy?

Digamos que tengo una matriz como esta: import numpy as np base_array = np.array([-13, -9, -11, -3, -3, -4, 2, 2, 2, 5, 7, 7, 8, 7, 12, 11]) Supongamos que quiero saber: “¿cuántos elementos en base_array son mayores que 4?” Esto se puede hacer simplemente mediante la explotación de la difusión: np.sum(4 < base_array) […]

Numpy `ValueError: los operandos no se pudieron transmitir junto con la forma …`

Estoy usando python 2.7 y estoy intentando realizar una difusión en algunos datos aleatorios desde 1.00000000 hasta 3.0000000008. Hay aproximadamente 196 elementos en mi matriz y me sale el error ValueError: operands could not be broadcast together with shape (2) (50) Parece que no puedo resolver este problema por mi cuenta. Cualquier ayuda o enlaces […]

¿Cómo funciona numpy.newaxis y cuándo usarlo?

Cuando bash numpy.newaxis el resultado me da un marco de ttwig 2-d con el eje x de 0 a 1. Sin embargo, cuando bash usar numpy.newaxis para cortar un vector, vector[0:4,] [ 0.04965172 0.04979645 0.04994022 0.05008303] vector[:, np.newaxis][0:4,] [[ 0.04965172] [ 0.04979645] [ 0.04994022] [ 0.05008303]] ¿Es lo mismo excepto que cambia un vector de […]

Espacio numérico vectorizado NumPy para múltiples valores de inicio y parada

Necesito crear una matriz 2D donde cada fila pueda comenzar y terminar con un número diferente. Supongamos que se proporciona el primer y último elemento de cada fila y que todos los demás elementos se interpolan según la longitud de las filas. En un caso sencillo, digamos que quiero crear una matriz de 3X3 con […]

NumPy Broadcasting: Cálculo de la sum de las diferencias cuadradas entre dos matrices

tengo el siguiente código. Se está tomando para siempre en Python. Debe haber una manera de traducir este cálculo en una transmisión … def euclidean_square(a,b): squares = np.zeros((a.shape[0],b.shape[0])) for i in range(squares.shape[0]): for j in range(squares.shape[1]): diff = a[i,:] – b[j,:] sqr = diff**2.0 squares[i,j] = np.sum(sqr) return squares

Elipsis emitiendo en numpy.einsum

Tengo problemas para entender por qué lo siguiente no funciona: Tengo un prefactor de matriz que puede ser tridimensional o de seis dimensiones. Tengo una serie de dipolos que tiene cuatro dimensiones. Las tres primeras dimensiones de los dipolos coinciden con las tres últimas dimensiones del prefactor . Como no conozco la forma del prefactor […]

¿Cómo encontrar las diferencias por pares entre filas de dos matrices muy grandes usando numpy?

Dadas dos matrices, quiero calcular las diferencias por pares entre todas las filas. Cada matriz tiene 1000 filas y 100 columnas, por lo que son bastante grandes. Intenté usar un bucle for y transmisión pura, pero el bucle for parece funcionar más rápido. ¿Estoy haciendo algo mal? Aquí está el código: from numpy import * […]