Articles of numpy broadcasting

Calcular distancias entre un punto en matriz de todos los otros puntos

Soy nuevo en Python y necesito implementar un algoritmo de clustering. Para eso, tendré que calcular distancias entre los datos de entrada dados. Considere los siguientes datos de entrada: [[1,2,8], [7,4,2], [9,1,7], [0,1,5], [6,4,3]] Lo que estoy buscando lograr aquí es, quiero calcular la distancia de [1,2,8] de TODOS los demás puntos, y encontrar un […]

Transmitir una operación a lo largo de un eje específico en python

En python, supongamos que tengo una matriz cuadrada X , de tamaño nxn y tengo un vector numpy a de tamaño n . Muy simplemente, quiero realizar una resta de transmisión de X – a , pero quiero poder especificar a lo largo de qué dimensión, de modo que puedo especificar que la resta sea […]

adormidera taquigrafía para tomar rebanadas dentadas

Tengo una operación que estoy haciendo comúnmente y la llamo “corte irregular” porque no sé el nombre real de la misma. Se explica mejor con el ejemplo: a = np.random.randn(50, 10) entries_of_interest = np.random.randint(10, size = 50) # Vector of 50 indices between 0 and 9 # Now I want the values contained in each […]

Restar de forma eficiente matrices numpy de diferentes formas

Usando las excelentes reglas de emisión de números, puede restar una matriz de formas (3) v de una matriz de formas (5,3) con X – v El resultado es una matriz de forma (5,3) en la que cada fila i es la diferencia X[i] – v . ¿Hay una manera de restar una matriz w […]

Aritmética de NumPy transmitida: ¿por qué es un método mucho más eficaz?

Esta pregunta es un seguimiento de mi respuesta de manera eficiente para calcular la matriz de Vandermonde . Aquí está la configuración: x = np.arange(5000) # an integer array N = 4 Ahora, voy a calcular la matriz de Vandermonde de dos maneras diferentes: m1 = (x ** np.arange(N)[:, None]).T Y, m2 = x[:, None] […]

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 […]