Python-numpy基础
- numpy库的基本操作
import numpy as np import math #创建数组 a=np.arange(10) print(a) print(type(a)) #对数组里面的元素开平分 b=[3,4,9] #定义结果列表 result=[] #遍历列表 for i in b: print(math.sqrt(i)) result.append(math.sqrt(i)) #输出结果列表 print(result) #可以直接对numpy里面的元素开平方 print(np.sqrt(a))
- numpy利用array创建数组及参数设置
import numpy as np import math #使用array创建一维数组 a=np.array([1,2,3,4]) #一个方括号 print(a) print(type(a)) #使用array创建二维数组 b=np.array([[1,2,3],[4,5,6],[7,8,9]]) #二个方括号 print(b) #使用array创建三维数组 c=np.array([[[1,2,3],[4,5,6],[7,8,9]]]) #三个方括号 print(c) #array函数中可以利用dtype设置数组的类型 d=np.array([3,4,5],dtype=float) print(d) #利用ndim设置矩阵的维数 e=np.array([3,4,5],dtype=float,ndmin=3) print(e)
- arange创建数组
import numpy as np import math #使用range建数组range(start,end,step)[star,end) a=list(range(1,10)) #步长为1 print(a) b=list(range(10))#默认从0开始 步长为1 print(b) c=list(range(1,10,3)) print(c) #使用arange建数组 d=np.arange(1,11) print(d) e=np.arange(1,11,2,dtype=float) print(e)
- np创建随机数组
import numpy as np import math #使用random创建一维随机数组 参数就是size a=np.random.random(size=5)#产生0.0~1.0之间的数 print(a) print(type(a)) #创建二维数组 b=np.random.random(size=(3,4)) print(b) #三维 c=np.random.random(size=(2,3,4)) print(c) #创建随机整数 def randomintTest(): #生成0~5之间的一维整数 d=np.random.randint(6,size=10) print(d) #生成5-10之间的二维随机整数 e=np.random.randint(5,11,size=(4,3)) print(e) # 生成5-10之间的三维随机整数 f = np.random.randint(5, 11, size=(2,4, 3)) print(f) #调用 randomintTest()
- numpy生成符合正态分布的整数
import numpy as np import math #创建随机整数 def randnTest(): #生成一维符合正态分布的整数 a=np.random.randn(4) print(a) #生成二维符合正态分布的整数 b=np.random.randn(2,3) print(b) #生成三维符合正态分布的整数 c = np.random.randn(2,4, 3) print(c) #生成指定期望和方差的正态分布 d=np.random.normal(size=5) #默认的期望loc=0.0 方差scale=1.0 print(d) e = np.random.normal(loc=2,scale=3,size=(3,4)) # 默认的期望loc=2.0 方差scale=3.0 print(e) #调用 randnTest()
- ndarray对象的属性
import numpy as np import math #一维数组 a=np.array([1,2,3,4]) #二维数组 b=np.random.randint(4,10,size=(2,3)) #三维数组 c=np.random.randn(2,3,4) #ndim属性 print('ndim:',a.ndim,b.ndim,c.ndim) #shape属性 print('shape:',a.shape,b.shape,c.shape) #dtype属性 print('dtype:',a.dtype,b.dtype,c.dtype) #size元素个数 print('size:',a.size,b.size,c.size) #itemsize 每个元素所占的字节 print('itemsize',a.itemsize,b.itemsize,c.itemsize)
- 用其他方式创建数组
import numpy as np import math #零数组 a=np.zeros(5,dtype=int) print(a) b=np.zeros((2,3),dtype=int) print(b) #一数组 c=np.ones((3,4),dtype=int) print(c) #empty数组 d=np.empty(5) print(d) #linspace创建等差数列 e=np.linspace(1,10,5,endpoint=False)#不包含10右界 输出起始为1 终止为9的5个等差数列 print(e) #logspace创建等比数列 f=np.logspace(0,9,5,base=2)#0是开始 9是结束 5为数目 2是 2的0~9次方 print(f)
- numpy 一维数组的切片索引
import numpy as np x=np.arange(10) print(x) #索引访问 print('索引5处的元素:',x[5]) print('索引-2处的元素:',x[-2]) #切片操作 print(x[3:]) y=x[2:7:2] print(y) #切片中的负索引 print(x[::-1]) #反向进行输出
- numpy 二维数组的切片索引
import numpy as np x=np.arange(1,13) x=x.reshape(4,3) print(x) #索引访问 print('获取第二行:',x[1]) print('获取第二行第三列:',x[1][2]) #切片操作 print('获取所有行所有列',x[:,:]) print('获取所有行第二列',x[:,1]) print('获取所有行第一、二列',x[:,0:2]) print('获取奇数行所有列',x[::2,:]) #坐标获取 print('获取第二行第三列',x[1][2]) print('获取第二行第三列',x[1,2]) print('获取第二行第三列、第三行第一列',x[1,2],x[2,0]) #返回数组 print('获取第二行第三列、第三行第一列',np.array([x[1,2],x[2,0]])) #使用元组 print('获取第二行第三列、第三行第一列',x[(1,2),(2,0)]) #负索引的使用 print('行列倒序',x[::-1,::-1])
转载请注明出处,欢迎讨论和交流!