Showing posts with label Numpy. Show all posts
Showing posts with label Numpy. Show all posts

Broadcasting in NumPy


 #Broadcasting
import numpy as np
# We will add,multiply, subtract  the vector v to each row of the matrix x,
x = np.array([[1,2,3], [4,5,6], [7,8,9]])
v = np.array([1, 0, 1])
print(x)
print(v)                 
y = x + v
y1= x * v
y2= x - v
print("Addition\n",y,"\n","Multiplication \n",y1,"\n","Subtraction \n",y2) 

Python programto find Sine and Cosine Values plot using Matplotlib

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,1)
data1 = np.sin(x)
data2 = np.cos(x)
fig, ax1 = plt.subplots()
color = 'tab:red'
ax1.set_xlabel('x')
ax1.set_ylabel('sine', color=color)
ax1.plot(x, data1, color=color)
ax1.tick_params(axis='y', labelcolor=color)
ax2 = ax1.twinx()
color = 'tab:green'
ax2.set_ylabel('cosine', color=color)
ax2.plot(x, data2, color=color)
ax2.tick_params(axis='y', labelcolor=color)
plt.show()




#Simple Implementation
#---------------------------------------------------------------------
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
c= np.cos(x)
s= np.sin(x)
plt.plot(x,c)
plt.plot(x,s)
plt.show()

Solving linear mathematical equations with two variable

import numpy as np
A=np.array([[1.5,1],[3.75,4]])
B=np.array([1800,900])
x=np.linalg.solve(A,B)
print("Values of A and B variables:",x)
h=np.allclose(np.dot(A, x), B)
print("Substitution of two variables in equation to validate:",h)

Operations on Matrices using Python program

import numpy as np
A = np.array([[4,1,7],[2,1,8],[3 ,7,1]])
B = np.array([[6,1,1],[2,1,5],[2,3,1]])
C=A.dot(B)
print("Values of First 2D Matrix\n",A)
print("Values of Second 2D Matrix\n",B)
print("---------------------------------------------")
print("Multiplication of Matrices\n",C)
print("\n")
Ainv=np.linalg.inv(A)
Binv=np.linalg.inv(B)
print("Inverse of First Matrix\n",Ainv)
print("Inverse of Second Matrix\n",Binv)
print("\n")
AI=Ainv.dot(A)
BI=Binv.dot(B)
print("Multiplication of First Matrix and their Inverse\n",AI)
print("Multiplication of Second Matrix and their Inverse\n",BI)
AD=np.linalg.det(A)
BD=np.linalg.det(B)
print("\n")
print("Determinant of First Matricx:",AD)
print("Determinant of Second Matricx:",BD)
print("\n")
ADi=np.diag(A)
BDi=np.diag(B)
print("Diagonal Elements of First Matrix:",ADi)
print("Diagonal Elements of Second Matrix:",BDi)
SADi=np.trace(A)
SBDi=np.trace(B)
print("\n")
print("Sum of Diagonal Elements of First Matrix:",SADi)
print("Sum of Diagonal Elements of Second Matrix:",SBDi)
print("\n")
CA=np.cov(A)
CB=np.cov(B)
print("Covariance matrix of First Matrix\n",CA)
print("Covariance matrix of Second Matrix\n",CB)
print("\n")
ECA=np.linalg.eigh(CA)
ECB=np.linalg.eigh(CB)
print("First array represents eigenvalues and second array represents eigenvectors")
print("\n")
print("covariance matrix eigenvalues eigenvectors of First Matrix\n",ECA)
print("\n")
print("covariance matrix eigenvalues eigenvectors of Second Matrix\n",ECB)

Mathematical operators on Numpy Array and List

import numpy as np

a = np.array([1, 2, 3])
print(type(a))           
print('Numpy Array:\n',a)
print('Addition of Numpy Arrays with constant:\n',a+13)
print('Addition of Numpy Arrays:\n',a+a)
print('Multiplication of Numpy Arrays with constant:\n',a*3)
print('Multiplication of Numpy Arrays with another:\n',a*a)
print('Divison of Numpy Arrays with constant:\n', a/3)
print('Divison of Numpy Arrays with another:\n', a/a)
print('Power of Numpy Arrays with constant:\n', a**4)
print('Power of Numpy Arrays with another:\n', a**a)
print('Remainder of Numpy Arrays with constant:\n',a%2)
print('Remainder of Numpy Arrays with another:\n',a%a)
print('Subtraction of Numpy Arrays with constant:\n', a-1)
print('Subtraction of Numpy Arrays with another:\n', a-a)

try:
  a1=[1, 2, 3]
  print('\n',type(a1))
  print('Common List:\n', a1)
  print('Addition of Lists:\n',a1+a1)
  print('Multiplication of List with constant:\n',a1*3)
  print(a1+13) #error
  print(a1*a1) #error
  print(a1/3) #error
  print(a1/a1) #error
  print(a1**4) #error
  print(a1*a1) #error
  print(a1%2) #error
  print(a1%a1) #error
  print(a1-1) #error
  print(a1-a1) #error
except TypeError:
  print('TypeError')
 

Statistical and Extrema operations on Numpy Array

import numpy as np
x = np.array([11, 13, 121, 181, 99, 100])
print('Numpy Array Elements',x)
print ('Minimum Value in array',x.min())
print ('Maximum Value in array',x.max())
print ('Index of Minimum Value',x.argmin())
print ('Index of Maximum Value',x.argmax())
print ('Mean of Array Values',x.mean())
print ('Median of Array Values',np.median(x))
print ('Standard deviation of Array Values',x.std())

Elementwise sum of two array elemets

import numpy as np
x = [[11,22],[33,44]]
y = [[55,66],[77,88]]
x1 = np.array([[11,22],[33,44]], dtype=np.int32)
y1 = np.array([[55,66],[77,88]], dtype=np.int32)
print("ADD USING LIST\n",x + y)
print("ADD NUMPY ARRAY\n",np.add(x1, y1))

Datatypes in Numpy

import numpy as np

x = np.array([101, 202])  
print(x.dtype)        

x = np.array([11.75, 21.75]) 
print(x.dtype)            

x = np.array([1, 2], dtype=np.int64) 
print(x.dtype)                    

x = np.array([1, 2], dtype=np.complex128) 
print(x.dtype) 

2D-array representation using with & without numpy implementation

import numpy as np

a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
print ("Using Numpy\n",a)

b=[[1,2,3,4], [5,6,7,8], [9,10,11,12]]
print ("Without Numpy\n", b)

Matrix representation and version detailsof Numpy

import numpy as np
print("\nVersion of Numpy is ",np.__version__)
x =  np.arange(25, 50).reshape(5,5)
print("\n Matrix representation in Numpy\n",x)