Assignment Solutions
Assignment Solutions
Q1)
import numpy as np
Q2)
import numpy as np
arr = np.arange(0,10)
for i in range(len(arr)):
if (arr[i] % 2):
arr[i] = -1
else:
arr[i] = 1
print(arr)
Q3)
import numpy as np
arr = np.arange(0,10)
arr.reshape((5,2))
print(arr)
Q4)
import numpy as np
polynomial = np.poly1d([1,2,-1,5])
roots = polynomial.r
print(roots)
Q5-7)
import numpy as np
import math
import sys
def func(x):
return pow(math.sin(x),2) + 2
angle = -2*math.pi
f_values = np.empty(0)
count = 0
print("Question 5:")
print(f_values)
print("\nQuestion 6:")
total = 0
for i in f_values:
print(f"{i}: {sys.getsizeof(i)}B")
total += sys.getsizeof(i)
print("\nQuestion 7:")
print(f_values[3:7])
Assignment 2:
Q1)
import numpy as np
arr_3x3 = np.empty((3,3))
for i in range(3):
for j in range(3):
arr_3x3[i][j] = 3*i+j
print(arr_3x3)
mod1 = np.array(arr_3x3)
for i in range(3):
mod1[i][0] = int(mod1[i][0])^int(mod1[i][1])
mod1[i][1] = int(mod1[i][0])^int(mod1[i][1])
mod1[i][0] = int(mod1[i][0])^int(mod1[i][1])
print("\n",mod1)
del mod1
mod2 = np.array(arr_3x3)
for j in range(3//2):
for i in range(3):
mod2[i][j] = int(mod2[i][j])^int(mod2[i][2-j])
mod2[i][2-j] = int(mod2[i][j])^int(mod2[i][2-j])
mod2[i][j] = int(mod2[i][j])^int(mod2[i][2-j])
print("\n",mod2)
del mod2
mod3 = np.array(arr_3x3)
for j in range(3//2):
for i in range(3):
mod3[j][i] = int(mod3[j][i])^int(mod3[2-j][i])
mod3[2-j][i] = int(mod3[j][i])^int(mod3[2-j][i])
mod3[j][i] = int(mod3[j][i])^int(mod3[2-j][i])
print("\n",mod3)
Q2)
import random
import numpy as np
arr = np.empty((5,3))
for i in range(5):
for j in range(3):
arr[i][j] = round(2+6*random.random(),3)
print(arr)
Q3)
import random
import math
import numpy as np
numbers = np.arange(1,16)
arr = np.array(random.choices(numbers,k=8),dtype=np.float_)
print(arr)
print("Mean:", np.mean(arr))
print("Median:",np.median(arr))
print("Standard Deviation:",np.std(arr))
minimum = min(arr)
maximum = max(arr)
print(minimum,maximum)
for i in range(len(arr)):
arr[i] = float((arr[i]-minimum))/(maximum-minimum)
print("Normalized array:",arr)
Q4)
import numpy as np
import random
arr = np.empty((8,3))
arr[0][0] = random.choice(range(10,35))
for i in range(8):
for j in range(3):
if (i,j) != (0,0):
rand = random.choice([-1,1])
if arr[((3*i+j)-1)//3][(3*i+j)-1-3*(((3*i+j)-1)//3)]+rand in range(10,35):
arr[i][j] = arr[((3*i+j)-1)//3][(3*i+j)-1-3*(((3*i+j)-1)//3)]+rand
else:
arr[i][j] = arr[((3*i+j)-1)//3][(3*i+j)-1-3*(((3*i+j)-1)//3)]-rand
print("Original matrix:")
print(arr)
print("\nSub-matrices:")
print(np.array(np.split(arr,4)))
print("\nSorting by second row:")
print(arr.T[arr.T[:,1].argsort()].T)
print("\nSorting by second column:")
print(arr[arr[:,1].argsort()])
print("\nReplacing the elements of the second column by 10:")
arr1 = np.copy(arr).T
arr1[1] = np.ones(np.shape(arr1[1]))*10
print(arr1.T)
Q5)
import numpy as np
x = 60
x = np.deg2rad(x)
print("x in rad:",x)
print("sin x:",np.sin(x))
print("cos x:",np.cos(x))
print("tan x:",np.tan(x))
print("sinh x:",np.sinh(x))
print("cosh x:",np.cosh(x))
print("tanh x:",np.tanh(x))
Q6)
print(string.upper(),"\n")
for i in string.split():
print(i)
print("\n",string.capitalize())
Q7)
month_numbers = np.arange(1,12)
total_profits =
np.array([211000,183300,224700,222700,209600,201400,295500,361400,234000,266700,412800])
plt.plot(month_numbers,total_profits,'o:r',ms=10,mfc='green')
plt.xticks(np.arange(1,12,1))
plt.xlabel("Month Number")
plt.ylabel("Total Profit")
plt.show()
Q1)
import numpy as np
arr_3x3 = np.empty((3,3))
for i in range(3):