#encoding=utf-8
import numpy as np
from numpy.linalg import *
def main():
###多行注释就一个组合键:选中,Ctrl+/
##lesson1:ndarray
# lst=[[1,3,5],[2,4,6]]
# print(type(lst))
# np_list=np.array(lst)
# print(type(np_list))
# np_list2=np.array(lst,dtype=np.float)
# print(np_list2.shape)##2行3列
# print(np_list2.ndim)##2维
# print(np_list2.dtype)##数据类型float64
# print(np_list2.itemsize)##64位8个字节
# print(np_list2.size)##共6个元素
##lesson2:常用array
# print(np.zeros([2,4]))##2行3列都为0的数组
# print(np.ones([3,5]))###3行5列都为1的数组
# print("Rand:")#随机数
# print(np.random.rand(2,4))##2行4列的随机数
# print(np.random.rand())##1个随机数
# print("RandInt:")#整型随机数
# print(np.random.randint(1,10))##1到10范围内的一个随机整数
# print(np.random.randint(1,10,3))###1到10范围内的3个随机数
# print("Randn:")#标准正态分布随机数
# print(np.random.randn(2,4))#2行4列正态分布随机数
# print("Choice:")
# print(np.random.choice([10,20,30,1,3]))#从10,20,30,1,3中随机选择一个数
# print("Distribute:")
# print(np.random.beta(1,10,100))#从1到10生成100个符合贝塔分布的随机数
##lesson3:numpy常用操作
# print(np.arange(1,11))#生成一个【1,11)的数组
# print(np.arange(1,11).reshape([2,5]))#生成一个2行5列的【1,11)的数组
# print(np.arange(1,11).reshape([2,-1])) # reshape二帝第二个参数缺省-1也可以
# print(np.exp(1))#e的1次方
# print(np.exp2(3))#自然指数3的平方
# print(np.sqrt(4))#4的开方
# print(np.sin(3.14))#sinx
# print(np.log10(10))#lg10
# lst=np.array([[[1,2,3],[2,4,6]],[[1,2,3],[2,4,6]]])
# print(lst.sum())#所有元素求和
# print(lst.sum(axis=0))#最上层对应相加[[1+1,2+2,3+3],[2+2,4+4,6+6]]
# print(lst.sum(axis=1))#更深入一层相加[1+2,2+4,3+6],[1+2,2+4,3+6]
# print(lst.max(axis=0))
# print(lst.min(axis=1))
# lst1=np.array([10,20,30,40])
# lst2=np.array([1,2,3,4])
# print(lst1+lst2)#两个数组相加
# print(lst1-lst2)#两个数组相减
# print(lst1*lst2)#两个数组相乘
# print(lst1/lst2)#两个数组相除
# print(lst1**2)#数组平方
# print(np.dot(lst1.reshape([2,2]),lst2.reshape([2,2])))#两个矩阵点乘
# print(np.concatenate((lst1,lst2),axis=0))#数组拼接成列
# print(np.vstack((lst1,lst2)))#数组上下拼接成行
# print(np.hstack((lst1,lst2)))#数组拼接成列
# print(np.split(lst1,2))#数组拆分
# print(np.copy(lst1))#数组拷贝
##lesson4:矩阵操作和线性方程组
#from numpy.linalg import *#引入一个包
# print(np.eye(3))#单位矩阵
# lst=np.array([[1,2],[3,4]])
# print("Inv")
# print(inv(lst))#矩阵的逆
# print("T:")
# print(lst.transpose())#矩阵的转置
# print("Det:")
# print(det(lst))#矩阵的行列式
#
# print(eig(lst))#特征值和特征向量
#
# y=np.array([[5.],[7.]])
# print("Solve")
# print(solve(lst,y))#lst*x=y,求矩阵x
##lesson5 numpy其他应用
# print("FFT:")#信号处理领域
# print(np.fft.fft(np.array([1,1,1,1,1,1,1,1])))
#
# print("Coef:")#相关系数运算
# print(np.corrcoef([1,0,1],[0,2,1]))#corrcoef得到相关系数矩阵(向量的相似程度)
#
# print("Poly:")#一元多次函数
# print(np.poly1d([2,1,3,7]))
# print(np.poly1d([2,1,3,7],True))
if __name__ == '__main__':
main()###只需要敲出main