Week 1, Fri, 4/4

Week 1, Fri, 4/4#

def myadd(a, b = 1):
    return a + b
myadd(2,3)
5
myadd(2)
3
myadd(2,b=3)
5
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a
array([[1, 2, 3],
       [4, 5, 6]])
type(a)
numpy.ndarray
a.shape
(2, 3)
zeros = np.zeros((3,4))
zeros
array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]])
ones = np.ones((3,4))
ones
array([[1., 1., 1., 1.],
       [1., 1., 1., 1.],
       [1., 1., 1., 1.]])
randint_arr = np.random.randint(0,10, size=(10,10))
randint_arr
array([[4, 8, 9, 4, 3, 4, 3, 7, 7, 4],
       [1, 6, 0, 7, 4, 5, 1, 7, 8, 5],
       [7, 1, 6, 8, 0, 2, 8, 9, 5, 9],
       [3, 2, 7, 3, 4, 5, 9, 2, 2, 0],
       [8, 2, 2, 8, 1, 4, 4, 2, 3, 5],
       [7, 8, 6, 2, 9, 9, 2, 5, 1, 7],
       [7, 8, 0, 7, 0, 9, 2, 8, 7, 9],
       [5, 8, 3, 9, 5, 8, 7, 7, 6, 4],
       [4, 8, 5, 8, 8, 9, 2, 0, 8, 6],
       [6, 4, 3, 7, 6, 4, 5, 7, 0, 8]])
matrix = np.random.rand(2, 3)
matrix
array([[0.37706141, 0.35093829, 0.98766998],
       [0.39305966, 0.45541896, 0.94713432]])
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
a[0,1]
2
arr[0,:]
array([1, 2, 3])
arr[:,2]
array([3, 6, 9])
[1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
arr1 = np.array([1,2,3])
arr2 = np.array([4,5,6])
arr1 + arr2
array([5, 7, 9])
arr1/arr2
array([0.25, 0.4 , 0.5 ])
arr1 + 5
array([6, 7, 8])
arr
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
arr.mean()
5.0
np.mean(arr)
5.0
np.mean(arr,axis=0)
array([4., 5., 6.])
arr
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
np.mean(arr,axis=1)
array([2., 5., 8.])
matrix = np.random.rand(4, 3)
matrix
array([[0.52803506, 0.52758081, 0.53961703],
       [0.76559197, 0.55888227, 0.37093139],
       [0.00519933, 0.40982572, 0.70160406],
       [0.93246644, 0.17441707, 0.63842241]])
# A = max of min of each row
A = matrix.min(axis=1).max()
print(A)
0.5275808084576713
# B = min of max of each column
B = matrix.max(axis=0).min()
print(B)
0.558882270998096
A<=B
True
a = [3,2,1]
a.sort()
a
[1, 2, 3]
from math import sqrt
class Vector():
    dim = 2
    def __init__(self, input_x, input_y):
        self.x = input_x
        self.y = input_y

    def length(self):
        l = sqrt(self.x**2+self.y**2)
        return l
    def scale(self, c):
        self.x = self.x * c
        self.y = self.y * c
    def __pr__(self):
        return f'({self.x}, {self.y})'

    def add(self, other):
        x = self.x + other.x
        y = self.y + other.y
        return Vector(x,y)

    # def __add__(self, other):
    #     x = self.x + other.x
    #     y = self.y + other.y
    #     return Vector(x,y)
        
v = Vector(3,4)
print(v)
<__main__.Vector object at 0x10d0771d0>
v = Vector(3,4)
w = Vector(1,2)
z = v.add(w)
print(z)
<__main__.Vector object at 0x10d075970>
print(v)
<__main__.Vector object at 0x10d076360>
v + w
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[42], line 1
----> 1 v + w

TypeError: unsupported operand type(s) for +: 'Vector' and 'Vector'