import numpy as np
# n= np.array([[1,2,3],[1,2,4]]) #创建一个两行三列的矩阵
# print(n)
#
# #限定格式的创建矩阵:
# a= np.array([[1,3,3],[19,2,3]],dtype=np.int32)
# print(a)
#
# #生成0矩阵
# b = np.zeros((3,4))
# print(b)
# #生成值为1的2*3矩阵
# c = np.ones((2,3))
# print(c)
# #生成3*3的,并且值小于1 的矩阵,并且他们的值都趋近于0
# d=np.empty((3,3))
# print(d)
#
# e=np.arange(2,12,3) #生成2-12,并且步长是3
# print(e)
#
# f= np.arange(12).reshape(3,4) #将o-11以3*4的矩阵形式输出
# print(f)
#
# g = np.linspace(1,20,20) #将1-20分成20 段输出
# print(g)
#——————————————————————————————————————————————————————————————————————————————————————————————————
#numpy当中的基础运算
# a= np.array([1,2,3,4])
# b= np.arange(4)
# c=a+b #加法运算
# print(c)
#
# d=a**2 #乘方运算
# print(d)
#
# c=a*np.sin(a)*np.cos(a) #在np当中也是可以调用sin函数和cos函数
# print(c)
#
# print(b<4) #这里的每一个值都是可以进行逻辑判断的,判断是否小于4
#
# f= a*b #f是矩阵内部一对一相乘
# g= a.dot(b) #g和h都是进行的是矩阵的乘法
# h=np.dot(a,b)
# print(h)
# print(f)
# print(g)
#
# i= np.random.random((2,3)) #生成2*3的随机数,并且这个数都小于1大于0
# print(i)
#
# k=np.array([[1,2,2],[2,5,6]])
#
# print(np.sum(k,axis=1))
# print(np.min(k,axis=0))
#-----------------------------------------------------------------------------------------------------
#numpy的基础运算
# A=np.arange(2,14).reshape((3,4))
# print(np.argmax(A))
# print(np.argmin(A))
#
# print(np.mean(A)) #将mean换成average得到答案是一样的,都是求平均数
# print(A.mean())
#
# print(np.median(A))#求中位数
# print(np.cumsum(A)) #逐步加,相当于(1,.2,3)——》输出(3,5)
# print(np.diff(A)) #逐步累减
#
# print(np.nonzero(A)) #输出非0的行数和列数
# print(np.sort(A)) #逐行排序
# print(np.transpose(A)) #以下两个表达式是一个意思,都是求转置矩阵(行列互换)
# print(A.T)
#---------------------------------------------------------------------------------------------------
#数组的索引
# A=np.arange(2,14).reshape((3,4))
# print(A)
# print(A[1][2])
# print(A[2])
#
# print(A[2,:])
# print(A[1,1:2])
#
# for row in A:
# print(row)
#
# B=A.T
# for row in B:
# print(row)
#——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————--
#np的合并和分割:
A=np.array([[1,2,3],[2,2,2]])
B=np.array([2,3,4])
# print(np.vstack((A,B)))
# print(np.hstack((A,B)))
print(A[:,np.newaxis]) #在列上增加一个维度
print(np.split(A,2,axis=0)) #将A沿列分成两个部分
print(np.vsplit(A,2)) #将A沿垂直方向分割成两个部分
print(np.hsplit(A,1)) #将A沿水平方向分割成两个部分
#深度分割
# C=A
# print(A)
# A[1,2]= 5
# print(A)
# print(C)
print("---------------------------------------------")
print(A)
C=A.copy()
A[1,2]= 5
print(A)
print(C)