#-*- coding:utf-8 -*- #author : zhangwei import numpy as np # a = np.array([[1,2,3],[2,3,4]]) # print a.shape #打印矩阵的形状,行数、列数 # print a.ndim #打印矩阵的维度 # print a.size #打印矩阵的总数 # a = np.array([10,20,30,40]) # b = np.arange(4) # # #c = 10*np.sin(a) #可以是sin,cos,tanh # print b == 3 #返回bool # a = np.array([[1,1] , [0,1]]) # b = np.arange(4).reshape([2,2])#采用reshape进行格式转换 # c = a * b #逐个相乘 # c_dot = np.dot(a , b) #矩阵相乘 # c_dot_2 = a.dot(b) #矩阵的第二种运算形式 # print c # print c_dot_2 # a = np.random.random([2,4])#随机生成的0~1随机数字; # print a # print np.max(a ,axis=0) #求矩阵的最大最小值以及求和; # print np.min(a , axis=1) #axis=0代表是列操作,axis=1代表的是行操作; # print np.sum(a , axis=1) # A = np.arange(14,2 , -1).reshape(3,4) # print A # print np.argmin(A) #求矩阵的最小值额索引 # print np.argmax(A) # print np.mean(A) #求矩阵额平均值 # print np.average(A) #求矩阵的平均值 # print np.median(A) #求矩阵额中位数 # print np.cumsum(A) #逐步的累加 # print np.diff(A) #每两步的累差 # print np.nonzero(A) #输出行数和列数 # print np.sort(A) #逐行进行排序 # print np.transpose(A) , A.T #矩阵额转置 # print A.T.dot(A) #矩阵转置再进行矩阵额乘法 # print np.clip(A , 5 , 9) #找出5~9之间的数,小于5的值变为5,大于9的数变为9,之间额值保持不变 # print np.mean(A , axis=1) #求均值指定行、列 # A = np.arange(3,15) # print A # print A[3] #矩阵A的第三个值 # B = np.arange(3,15).reshape([3,4]) # print B # print B[1] #索引矩阵行里面额结果 # print B[1][1] #索引第一行第一列的值 # print B[1,1] #索引第一行第一列的值 # print B[2,:] #索引第二行所有的数 # print B[: , 1] #索引第一列的所有的数 # print B[1 , 1:3] #索引第一行1~3列的值,右开 # for raw in B: #用for循环打印出行值,没法进行列输出 # print raw # for column in B.T: #采用转置输出列 # print column # print B.flat #将矩阵进行转为一行,但是输出值是一个迭代器,并不能输出结果 # print B.flatten() #将矩阵的值输出为一行的值 # for item in B.flatten(): # print item # A = np.array([1,1,1])[:,np.newaxis] # B = np.array([2,2,2])[:,np.newaxis] # # C = np.vstack((A,B,A)) # # print np.vstack((A,B)) #进行上下的合并,vertical stack,可以尽心多行合并 # # print A.shape # # print C.shape # # D = np.hstack((A , B)) #左右合并,horizontal stack # # print D.shape # # print A.T.shape #无法采用T将序列变为一个列向量,形状仍然没有改变 # # print A[np.newaxis,:] #在行上加一个维度 # # print A[:,np.newaxis] #在列上加一个维度 # # E = np.vstack((A[:,np.newaxis] , B[:,np.newaxis])) #两种方法将矩阵合并为纵向的一维矩阵 # # print D[:,np.newaxis] #两种方法将矩阵合并为纵向的一维矩阵 # C = np.concatenate((A,B,A,B) , axis=1) #0列方向进行合并,行方向进行合并, # print C # A = np.arange(12).reshape([3,4]) # print A # print np.split(A , 4 , axis=-1) #将数组进行切分,注意切分的大小要合适,必须是等量分割; # print np.array_split(A , 2 , axis=0) #不等量分割,把多余的数组转到第一个数组; # print np.vsplit(A, 3) #纵向分割为三块,必须是等量分块 # print np.hsplit(A , 2) #水平方向分割为两块 # a = np.arange(4) # b = a #浅拷贝 # c = a # d = b # a[0] = 11 # print a , b , c , d # print b is a #判断a和b是否完全相等 # d[1:3] = [22,33] #浅拷贝各部分数组是关联的 # b = a.copy() #深拷贝,数组之间是不关联额 # a[3] = 44 # print a , b #a的改变不会导致b的改变
学习文献:https://morvanzhou.github.io/about/