En numpy, la función numpy.dot()
se puede usar para calcular el producto matricial de dos matrices 2D. Tengo dos matrices 3D X e Y (por ejemplo), y me gustaría calcular la matriz Z donde Z[i] == numpy.dot(X[i], Y[i])
para todos i
. ¿Es posible hacerlo de forma no iterativa?encuentra el producto escalar de las sub-matrices en numpy
6
A
Respuesta
7
¿Qué tal:
from numpy.core.umath_tests import inner1d
Z = inner1d(X,Y)
Por ejemplo:
X = np.random.normal(size=(10,5))
Y = np.random.normal(size=(10,5))
Z1 = inner1d(X,Y)
Z2 = [np.dot(X[k],Y[k]) for k in range(10)]
print np.allclose(Z1,Z2)
vuelve True
Editar corrección ya no vi la parte 3D de la cuestión
from numpy.core.umath_tests import matrix_multiply
X = np.random.normal(size=(10,5,3))
Y = np.random.normal(size=(10,3,5))
Z1 = matrix_multiply(X,Y)
Z2 = np.array([np.dot(X[k],Y[k]) for k in range(10)])
np.allclose(Z1,Z2) # <== returns True
Esto funciona porque (como dice la cadena de documentación), matrix_multiply
proporciona
matrix_multiply (x1, x2, [a cabo]) matriz
multiplicación en los últimos dos dimensiones
Cuestiones relacionadas
- 1. Calcular el producto escalar de dos vectores en C++
- 2. producto vectorial de un vector en NumPy
- 3. ¿Cuál es la forma pitónica de calcular el producto escalar?
- 4. Encontrar submatrices coincidentes dentro de una matriz
- 5. Encuentra el valor más cercano en la matriz numpy
- 6. MATLAB - Combinar submatrices
- 7. "columnas" de las submatrices de una matriz bidimensional
- 8. Iteración a través de todas las submatrices 1 dimensionales de una matriz multidimensional
- 9. ¿Cómo puedo obtener el producto de todos los elementos en una una matriz tridimensional numpy
- 10. Producto escalar entre los vectores fila por MMULT no trabaja en Excel
- 11. producto de punto en python
- 12. escalar con las líneas de gama
- 13. ¿Cómo puedo dividir una matriz en submatrices de tamaño desigual?
- 14. Encuentra la secuencia contigua con el producto más grande de una matriz de enteros
- 15. Mejorando el rendimiento de las operaciones en una matriz NumPy
- 16. Encuentra el min/max excluyendo ceros en una matriz numpy (o una tupla) en python
- 17. Punto producto de un vector en SciPy/NumPy (obteniendo ValueError: los objetos no están alineados)
- 18. Config.ini personalizado en el producto Eclipse RCP
- 19. Obtener todo producto simple de un producto configurable en Magento Vista de producto
- 20. ¿Cómo dividir una matriz en 4 bloques usando numpy?
- 21. Cómo hacer referencia a submatrices dentro de una matriz
- 22. Python encuentra frecuencia de audio y amplitud en el tiempo
- 23. Optimizar el uso de memoria en numpy
- 24. cmake no encuentra las bibliotecas de impulso
- 25. cmake encuentra mal las libs de python
- 26. ¿Manera fácil de probar si cada elemento en una matriz numpy se encuentra entre dos valores?
- 27. ¿Cómo calculo el producto cartesiano de n secuencias en F #?
- 28. Establecer las dimensiones de UIImagePickerController "mover y escalar" cropbox
- 29. Producto de complemento VS Producto de la característica
- 30. Arrastre el mouse para rotar y escalar en Java
Sobre qué eje/ejes ¿quieres hacer el producto? Para el caso en que X e Y fueron ambos 3x3, ¿cuál es el tamaño de Z? – talonmies
@talonmies Si las dos matrices 3D son K x L x M y K x M x N, el resultado debería ser K x L x N. –