#-*- coding:utf-8 -*-
import numpy as np
'''
numpy:底层由c语言实现,所以速度较快。
'''
#1.numpy常用函数
l1=np.array([1,2,3,4,5,6])
print(l1,type(l1),l1.shape)
print(l1.sum())
print(l1.max())
print(l1.min())
print(np.average(l1))
l1_=l1[1:3]#切片
print(l1_)
l2=np.array([[1,2,3],[4,5,6]])
print(l2,type(l2),l2.shape)
l2=l1.reshape(2,3)
print(l2,type(l2),l2.shape)
l2_=l2[:1,:2]#切片
print(l2_)
#2.广播
l3=l2+3#其他运算同理
print(l3)
l3=l3+l2
print(l3)
l3=np.exp(l2)
print(l3)
#3.向量化计算
'''
1 尽量不要使用for循环
2 尽量使用numpy自带函数
3 多使用广播
'''
l4=np.array([[1,2,3],[4,5,6]])
l5=np.array([[10,11,12,13],[14,15,16,17],[18,19,20,21]])
print(np.dot(l4,l5))
#上图公式的计算
yhat=np.array([0.9,0.2,0.1,0.4,0.9])
y=np.array([1,0,0,1,1])
l6=np.sum(np.abs(y-yhat))
l7=np.dot((y-yhat),(y-yhat))
print(l6,l7)