# Multiply arguments element-wise with different shapes in Numpy

To multiply arguments element-wise with different shapes, use the numpy.multiply() method in Python Numpy.

The out is a location into which the result is stored. If provided, it must have a shape that the inputs broadcast to. If not provided or None, a freshly-allocated array is returned. A tuple (possible only as a keyword argument) must have length equal to the number of outputs.

The condition is broadcast over the input. At locations where the condition is True, the out array will be set to the ufunc result. Elsewhere, the out array will retain its original value. Note that if an uninitialized out array is created via the default out=None, locations within it where the condition is False will remain uninitialized.

NumPy offers comprehensive mathematical functions, random number generators, linear algebra routines, Fourier transforms, and more. It supports a wide range of hardware and computing platforms, and plays well with distributed, GPU, and sparse array libraries.

## Steps

At first, import the required library −

import numpy as np

Create two arrays with different shapes −

arr1 = np.arange(27.0).reshape((3, 3, 3))
arr2 = np.arange(9.0).reshape((3, 3))

Display the arrays −

print("Array 1...", arr1)
print("Array 2...", arr2)

Get the type of the arrays −

print("Our Array 1 type...", arr1.dtype)
print("Our Array 2 type...", arr2.dtype)

Get the dimensions of the Arrays −

print("Our Array 1 Dimensions...",arr1.ndim)
print("Our Array 2 Dimensions...",arr2.ndim)

Get the shape of the Arrays −

print("Our Array 1 Shape...",arr1.shape)
print("Our Array 2 Shape...",arr2.shape)

To multiply arguments element-wise with different shapes, use the numpy.multiply() method in Python Numpy −

print("Result (multiply element-wise)...",np.multiply(arr1, arr2))


## Example

import numpy as np

# Create two arrays with different shapes
arr1 = np.arange(27.0).reshape((3, 3, 3))
arr2 = np.arange(9.0).reshape((3, 3))

# Display the arrays
print("Array 1...", arr1)
print("Array 2...", arr2)

# Get the type of the arrays
print("Our Array 1 type...", arr1.dtype)
print("Our Array 2 type...", arr2.dtype)

# Get the dimensions of the Arrays
print("Our Array 1 Dimensions...",arr1.ndim)
print("Our Array 2 Dimensions...",arr2.ndim)

# Get the shape of the Arrays
print("Our Array 1 Shape...",arr1.shape)
print("Our Array 2 Shape...",arr2.shape)

# To multiply arguments element-wise with different shapes, use the numpy.multiply() method in Python Numpy
print("Result (multiply element-wise)...",np.multiply(arr1, arr2))

## Output

Array 1...
[[[ 0. 1. 2.]
[ 3. 4. 5.]
[ 6. 7. 8.]]

[[ 9. 10. 11.]
[12. 13. 14.]
[15. 16. 17.]]

[[18. 19. 20.]
[21. 22. 23.]
[24. 25. 26.]]]

Array 2...
[[0. 1. 2.]
[3. 4. 5.]
[6. 7. 8.]]

Our Array 1 type...
float64

Our Array 2 type...
float64

Our Array 1 Dimensions...
3

Our Array 2 Dimensions...
2

Our Array 1 Shape...
(3, 3, 3)

Our Array 2 Shape...
(3, 3)

Result (multiply element-wise)...
[[[ 0. 1. 4.]
[ 9. 16. 25.]
[ 36. 49. 64.]]

[[ 0. 10. 22.]
[ 36. 52. 70.]
[ 90. 112. 136.]]

[[ 0. 19. 40.]
[ 63. 88. 115.]
[144. 175. 208.]]]