In earlier post we talked about how to start working with numpy array, here we learn about some arithmetic operators and some array function that we may use in our regular python program development.
We can simply multiply or add two array with same dimension. here we see some example of how to use operators with one dimension and two dimension array.
import numpy as np ar1 = np.array([40,30,70,90]) ar2= np.array([15,20,60,20]) print(ar1*ar2) #result will be [ 600 600 4200 1800]
To multiply array, we must keep same number of elements in each array otherwise it will produce error, for example the following will throw an error.
import numpy as np ar1 = np.array([40,30,70,90, 15]) ar2= np.array([15,20,60,20]) print(ar1*ar2) #this will throw error
Like multiplication, we also can add array with same number of elements in it, here is an example
import numpy as np ar1 = np.array([40,30,70,90]) ar2= np.array([15,20,60,20]) print(ar1 + ar2) #result will be [ 55 50 130 110]
Same addition and multiplication can be done with two dimension array, but make sure you have same data length and data structure.
Here is an example of how operator can be used with two-dimension array.
ar1 = np.array([[40,30], [70,90]]) ar2= np.array([[15,20], [60,20]]) print(ar1 * ar2) #result [[ 600 600] [4200 1800]] print(ar1 + ar2) #result [[ 55 50] [130 110]]
First we need to understand complex number then array.
A complex number is any number that can be represented by one real part and one imaginary part,
a+bj, a is the real number and
bj is the imaginary number.
This is how we can define complex number.
a=7 b=5j cn0= (a + b) print(cn0)
We also can create a complex number from two real number using
and from that complex number (result) we can find the real part using real property and
imaginary part using imag property like below example.
cn1= complex(4,7) print(cn1) cmath.phase(cn1) print (cn1.real) print (cn1.imag)
There are many built-in function supports complex number in numpy, like we can call abs, pow etc with any complex number.
cn1= complex(4,7) #result: (4+7j) print(abs(cn1)) #result: 8.06225774829855 print(pow(cn1,2)) #reult: (-33+56j)
matrix product can be performed two ways, one using
@ operator and secondly using
both will produce exact same result
ar1 = np.array([[2,3], [6,7]]) ar2= np.array([[5,2], [3,2]]) print(ar1 @ ar2) print(ar1.dot(ar2)) #result [[19 10] [51 26]] print(np.matmul(ar1, ar2)) print(np.dot(ar1, ar2))
Numpy dot function
dot(x-array, y-array) returns dot results from two arrays (X-axis and y-axis), which is a scalar value for 1D array
normal matrix multiplication
Here is an example of 1D array
xArr1 = [6, 8, 10] yArr1 = [5, 6, 30] print(np.dot(xArr1,yArr1)) #378 #(6*5 + 8*6 + 10*30)= 378
Instead of 1d array, if we try two dimensions array with dot function, it will rerun an array instead of scalar property.
Here we see how to find an element from array, if we find the element we return the position number otherwise return -1, which indicates specified element not found.
import numpy as np def searchElement(ar, key): length = len(ar) for i in range (length): if (ar[i] == key): return i return -1 arr1 = [19, 58, 10, 96, 70] key = 10 result= searchElement(arr1, key) print(result)
Now instead of searching any element in above traditional way, in numpy we have a more efficient way to search any element using where clause like linq query.
arr1 = np.array([11, 10, 13, 9, 15, 12, 28, 9, 57, 32, 8, 24, 7, 20, 40]) result = np.where(arr1 == 9)
in above code, we are searching number 9 in a specified array, the result will be an array, which will contain all the index position wherever the number 9 is found in array.
We can specify any conditions in where clause, for example,
to find all even numbers
np.where(arr1%2 == 0) or odd numbers
np.where(arr1%2 == 1)