In [103]:
import numpy as np
import scipy as sp
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf
import sklearn as sk
import matplotlib as mpl
import matplotlib.pylab as plt
from mpl_toolkits.mplot3d import Axes3D
import seaborn as sns
sns.set()
sns.set_color_codes()
%matplotlib inline
%config InlineBackend.figure_format='png'
# python 2
from __future__ import division
# 플랏 크기 조절
fig_size = plt.rcParams["figure.figsize"]
fig_size[0] = 15
fig_size[1] = 9
plt.rcParams["figure.figsize"] = fig_size
mpl.rc('xtick', labelsize = 20)
mpl.rc('ytick', labelsize = 20)
In [5]:
a = np.array([
[1],
[2]
])
In [36]:
# 점찍기
plt.plot(0,0, 'ro', ms = 10)
plt.plot(a[0],a[1], 'ro', ms=10)
# 화살표 그리기
plt.annotate("",xy=a,xytext=(0,0), arrowprops=dict(facecolor="black"))
# 텍스트 기입하기
plt.text(0.2, 1.0, "$a$", fontsize=30)
# x축 / y축 범위
plt.xlim(-1, 2)
plt.ylim(-0.5, 2.5)
plt.show()
In [39]:
a = np.array([[2],[2]])
np.linalg.norm(a)
Out[39]:
In [80]:
# 단위 벡터를 찾는 함수
def unit_vector_finder(vector_list):
return [ i for i in vector_list if np.linalg.norm(i) == 1]
# 벡터의 길이를 구해서 딕셔너리로 리턴해주는 함수
def vector_norm(vector_list):
return { idx: np.linalg.norm(data) for idx, data in enumerate(vector_list)}
In [100]:
import random
generato_r = random.Random()
vector_list = np.array([])
for _ in range(100):
a = generato_r.gauss(10,5)
b = generato_r.uniform(1,7)
temp_vector = np.array([[a],[b]])
vector_list = np.append(vector_list, temp_vector)
print(temp_vector)
vector_list = vector_list.reshape(100,2)
vector_norm(unit_vector_finder(vector_list))
Out[100]:
In [ ]:
b = generato_r.uniform
In [ ]:
a = generato_r.gauss
In [84]:
{i:i for i in range(3)}
Out[84]:
In [76]:
In [56]:
vector_list.reshape(100,2)
Out[56]:
In [86]:
random.random?
In [130]:
a = np.array([1,2])
b = np.array([2,1])
c = a + b
plt.annotate('', xy=a, xytext=(0,0), arrowprops=dict(facecolor='gray'))
plt.annotate('', xy=b, xytext=(0,0), arrowprops=dict(facecolor='gray'))
plt.annotate('', xy=c, xytext=(0,0), arrowprops=dict(facecolor='black'))
plt.plot([a[0],c[0]],[a[1],c[1]], 'k--')
plt.plot([b[0],c[0]],[b[1],c[1]], 'k--')
plt.plot(a[0],a[1],'ro',ms=10)
plt.plot(b[0],b[1],'ro',ms=10)
plt.xlim(-1,4)
plt.ylim(-1,5)
Out[130]:
In [120]:
plt.annotate?
In [131]:
a = np.array([1,1])
b = np.array([-1,1])
In [132]:
np.dot(a,b)
Out[132]:
In [138]:
a = np.array([1,2])
b = np.array([2,0])
a2 = np.dot(a,b) / np.linalg.norm(b) * np.array([1,0])
In [139]:
a1 = a- a2
In [140]:
Out[140]:
In [ ]: