import numpy as np
#矩阵
# a=np.mat('1,2;3,4') #mat()创建矩阵 mat()只适用于二维矩阵
# print(a)
# b=np.mat([[5,6],[7,8]])
# print(b)
# print(type(b)) #用法与array类似,但类型不同
# c=np.array([[5,6],[7,8]])
# print(type(c))
#n1=np.mat(np.zeros((3,3))) #三维0矩阵
#n1=np.mat(np.ones((2,4))) #2行4列1矩阵
#n1=np.mat(np.random.rand(3,3)) #三维随机0-1数矩阵
#n1=np.mat(np.random.randint(1,8,size=(3,5))) #3行5列随机整数
#n1=np.mat(np.eye(2,2,dtype=int)) #eye()对角矩阵
#n1=np.mat(np.diag([1,2,3,4,5])) #diag()对角线矩阵
#print(n1)
#运算
# n1=np.mat([[1,2],[3,4],[5,6]])
# n2=np.mat([[1,2],[3,4]])
# print(n1,'\n')
# print(n2,'\n')
# print(n1*n2) #行数不同时根据已有值自动补齐 矩阵乘法要求左边矩阵的列和右边矩阵的行数一致
#矩阵的乘法称为点乘,点积
#数组可以使用dot()来实现点积 dot()
# n1=np.array([1,2,3])
# n2=np.array([[1,2,3],[1,2,3],[1,2,3]])
# print(n1*n2,'\n')
# print(np.dot(n1,n2))
#同理矩阵也可以使用multiply()来实现数组的乘法 multiply()
# n1=np.mat('1,3,3;4,5,6;7,12,9')
# n2=np.mat('2,6,6;8,10,12;14,24,18')
# print(n1*n2)
# print(np.multiply(n1,n2))
#矩阵转换
n=np.mat('1,3,3;4,5,6;7,12,9')
print(n)
print(n.T) #T属性转置
print(n.I) #I属性求逆矩阵 矩阵要可逆,否则为奇异矩阵,即行列式为0
#numpy统计分析函数
#数学运算
# n1=np.array([[1,2,3],[4,5,6],[7,8,9]])
# n2=np.array([10,10,10])
# print(np.divide(n1,n2)) #add()加法 subtract()减法 multiply()乘法 divide()除法
# n=np.array([0.25,1.75,2,100])
# print(np.reciprocal(n)) #reciprocal()计算元素的倒数
# n1=np.array([10,100,1000])
# print(np.power(n1,3)) #power()求幂 将第一个值作为底数,第二个值作为幂
# n2=np.array([1,2,3])
# print(np.power(n1,n2))
# n1=np.array([10,20,30])
# n2=np.array([4,5,-8])
# print(np.mod(n1,n2)) #mod()取余数
# n=np.array([1.22,6.636,5.4323515])
# print(np.round(n)) #round()四舍五入取整
# print(np.round(n,decimals=2)) #decimals保留几位小数
# n=np.array([-1.8,1.66,-0.2,0.888,15])
# print(np.floor(n)) #ceil()向上取整 floor()向下取整
#三角函数
# n=np.array([0,30,45,60,90])
# print('余弦值:\n',np.sin(n*np.pi/180)) #n*np.pi/180 将角度转换成弧度
# print('正弦值:\n',np.cos(n*np.pi/180))
# print('正切值:\n',np.tan(n*np.pi/180))
n=np.array([0,30,45,60,90])
sin=np.sin(n*np.pi/180)
print(sin)
inv=np.arcsin(sin) #计算反正弦,单位为弧度
print(np.degrees(inv)) #degrees()将弧度转换成角度