import numpy
vector = numpy.array([5,10,15,20,30]) #创建向量 matrix = numpy.array([[1,2,3],[4,5,6],[2,6,5]])#创建矩阵 print(vector.shape)#查看vector维度 print(vector) print(matrix.shape) #查看matrix维度 vector.dtype #查看类型
2.文件的读取(新建一个zzw.txt文件 里面写入一些数据)
world = numpy.genfromtxt('zzw.txt',delimiter=',',skip_header=1,dtype=str) #跳过第一行 numpy.genfromtxt('zzw.txt',delimiter=',',skip_header=1,dtype=str) #全部读取 print(world)
#读取从0开始的2个元素 donkey = numpy.array([5,4,8]) print(donkey[0:2]) #矩阵的操作 matrix = numpy.array([[5,10,15], [20,25,30], [35,40,45]]) print(matrix[1:3,1:3]) #判断表中是否有为5的值array([ True, False, False]) zhan1 = numpy.array([5,4,8]) zhan1 == 5 #numpy的操作 zhan1 = numpy.array([5,4,8]) zhan2 = (zhan1==5) print(zhan2) print(zhan1[zhan2]) #且操作 zhan1 = numpy.array([5,4,8]) zhan2 = (zhan1 == 4) & (zhan1==8) print(zhan2) #或操作 zhan1 = numpy.array([5,4,8]) zhan2 = (zhan1 == 4) | (zhan1==8) print(zhan2) #将4和8的值改为10 zhan1 = numpy.array([5,4,8]) zhan2 = (zhan1 == 4) | (zhan1==8) zhan1[zhan2] = 10 print(zhan1) #求最小值 zhan1 = numpy.array([5,4,8]) zhan1.min() #求最大值 donkey= numpy.array([5,4,8]) donkey.max() #矩阵行求和 matrix = numpy.array([[1,2,3],[,4,5,6],[7,8,9]]) matrix.sum(axis=1) #矩阵列求和 matrix = numpy.array([[1,2,3],[4,5,6],[7,8,9]]) matrix.sum(axis=0)
import numpy as np print(np.arange(15)) #生成0-14的向量 a = np.arange(15).reshape(3,5)#生成3*5的矩阵 a a.shape #查看a的维度 np.zeros((3,5)) #生成3*5的矩阵,值都为0 np.ones((2,3,4),dtype = np.int32)#生成2个3*4的举证值都为int型1 #生成10开始30截止,间隔5的向量。不包含30. np.arange(10,30,5) #随机生成2*3的矩阵 np.random.random((2,3)) #0-2*pi之间随机取100个值 from numpy import pi np.linspace(0,2*pi,100)3.矩阵之间的操作
a = np.array([10,20,30]) b = np.arange(3) c = a-b#矩阵的减法 c = c**2 #矩阵中所有值求2次幂 c = a*b #求向量积 c = a.dot(b) #求点积 #其它运算 a= np.arange(3) print(a) print(np.exp(a)) #e平方 print(np.sqrt(a)) #开方 a = np.floor(10*np.random.random((3,4))) #floor向下取整 print(a) print(a.ravel()) #变为向量 a.shape = (6,2) #修改矩阵维度 print(a) print(a.T) #求转置
a = np.floor(10*np.random.random((3,4))) b = np.floor(10*np.random.random((3,4))) print(np.vstack((a,b))) #a,b矩阵列衔接 print(np.hstack((a,b))) #a,b矩阵行衔接 #按照列切分3份 a = np.floor(10*np.random.random((2,12))) print(np.hsplit(a,3)) #按照列切分3,4列 a = np.floor(10*np.random.random((2,12))) print(np.hsplit(a,(3,4))) #按照行切分 a = np.floor(10*np.random.random((2,12))) print(np.vsplit(a,2))
4.矩阵的复制
a = np.arange(10) #a和b完全相同指向同一块内存 b = a b.shape = (2,5) print(a.shape) print(id(a)) print(id(b)) a = np.arange(10) #a和b不完全相同,指向不同的id,但是修改b会同样修改a
b = a.view()
b.shape=(5,2) print(a.shape) print(b.shape) b[0,0] = 1254 print(a) print(b) print(id(a)) print(id(b)) a = np.arange(10) #a和b没有关联 b = a.copy() b.shape=(5,2) print(a.shape) print(b.shape) b[0,0] = 1254 print(a) print(b) print(id(a)) print(id(b))5.矩阵的链接生成
a = np.array([1,2,3]) b = np.tile(a,(3,5)) print(b)
结果为:自己去理解
[[1 2 3 1 2 3 1 2 3 1 2 3 1 2 3] [1 2 3 1 2 3 1 2 3 1 2 3 1 2 3] [1 2 3 1 2 3 1 2 3 1 2 3 1 2 3]]
6.排序
a = np.array([[6,2,3],[2,6,4]]) #行排序 b = np.sort(a,axis=1) print(b)