numpy
numpy核心数据结构:数组array
array属性:
shape:返回一个元组,表示array的维度
ndim:一个数字,表示array的维度的数目
size:一个数字,表示array中所有数据元素的数目
dtype:array中的元素的数据类型
创建向量和矩阵
import numpy as np #创建向量 x=np.array([1,2,3,4,5]) #创建矩阵 x1=np.array( [ [1,2,3,4], [5,6,7,8] ] ) print('向量5维',x.shape) print('矩阵2行4列',x1.shape) print('向量维数',x.ndim) print('矩阵维数',x1.ndim) print('向量元素',x.size,'矩阵元素',x1.size) print('向量元素类型',x.dtype,'矩阵元素类型',x1.dtype) #arange创建向量方法 (起点,终点,步长) x2=np.arange(3,12,3) print(x2) #使用full创建全为指定数向量 x3=np.full(7,'zhiding') print(x3) #使用full创建全为指定数的2行3列的矩阵 x4=np.full((2,3),'zhiding') print(x4) #fulllike创建形状相同的向量或者数组 like=np.array( [ [1,2,3,4], [5,6,7,8], [5,6,7,8] ] ) print(np.full_like(like,2)) #使用random模块生成随机数的数组 print('生成三个数',np.random.randn(3)) print('生成三行二列矩阵',np.random.randn(3,2)) print('生成三个二行四列',np.random.randn(3,2,4)) #向量的转化成矩阵 print('向量的转化成矩阵',np.arange(10).reshape(2,5)) # 矩阵的运算 print('每个元素都加一',like+1) print('每个元素都乘以3',like*3) print('每个元素都求sin',np.sin(like)) print('每个元素都求len',np.exp(like)) #也支持矩阵加法和减法
Numpy对数组按索引查询
1.基础索引
import numpy as np #创建向量 x=np.arange(10) #创建矩阵 x1=np.arange(20).reshape(4,5) #对一维数组的索引 print(x[2],x[2:4]) #对二维数组进行索引 print(x1[1,1],x1[-1,-1]) #按照行列筛选 print('筛选矩阵里面的某一行',x1[2]) print('筛选矩阵里面的某一列',x1[:,2]) print('筛选矩阵里面的多行',x1[:3]) print('筛选矩阵里面的多行多列',x1[:2,2:4]) #可以通过上述切片的方法来筛选出想要的位置并可直接进行修改
2.神奇索引
用列表(神奇索引)获取一系列位置
import numpy as np #randint随机生成1到100以内的十个随机的整数 arr=np.array([2,4,5,7,8,5,43,2,2]) print('用列表也就是神奇索引获取对应位置',arr[[4,5,7]])
利用神奇索引进行大小排序
import numpy as np #randint随机生成1到100以内的十个随机的整数 arr=np.random.randint(1,100,10) print(arr) print('返回从小到大排序的对应元素的下标,然后取后三个',arr.argsort()[-3:]) #自动进行筛选排序 print(arr[arr.argsort()[-3:]])
利用神奇索引用与矩阵
import numpy as np #randint随机生成1到100以内的十个随机的整数 arr=np.array([ [2,4,5,7,8,5], [5,3,4,6,4,8], [9,9,7,6,0,2], [5,4,7,2,3,6] ]) print(arr[[0,1],:]) #行 print(arr[:,[0,1]]) #列 print(arr[[0,1,2],[0,1,2]])#返回(1,1)(2,2)(3,3)处位置
3.布尔索引
当给数组添加条件判断的时候,满足条件判断就是true,不满足条件判断就是false
import numpy as np #randint随机生成1到100以内的十个随机的整数 arr=np.array([ [2,4,5,7,8,5], [5,3,4,6,4,8], [9,9,7,6,0,2], [5,4,7,2,3,6] ]) print(arr[arr<5]) #筛选符合小于5的元素 print(arr<5) #将x<5的全部变成‘xiao’,其他的变成'da'
常用random函数

np的数学统计函数

如果没有设定axis,那么矩阵默认会是当成一列来进行函数运算
np.percentile(arr,[25,50,75])的意思是取位于数组里25%处,50%处,75%处的数
np.quantile(arr,[0.25,0.5,0.75])的意思是取位于数组里25%处,50%处,75%处的数
axis参数
axis=0代表消行,axis=1代表消列
import numpy as np #randint随机生成1到100以内的十个随机的整数 arr=np.array([ [2,4,5,7,8,5], [5,3,4,6,4,8], [9,9,7,6,0,2], [5,4,7,2,3,6] ]) print(arr.sum(axis=0)) #消掉行,计算列和 print(arr.sum(axis=1)) #消掉列,计算行和 print('\n') print(arr.cumsum(axis=0)) print('\n') print(arr.cumsum(axis=1))

浙公网安备 33010602011771号