numpy库学习
1 矩阵的合并
p6 = [[0 2 4]
[5 7 9]]
p3=[[0 1 2]
[5 6 7]]
按列合并行,列数需相等
c=np.concatenate([p6,p3],axis=0) #axis=0行合并
print(c)
[[0 2 4]
[5 7 9]
[0 1 2]
[5 6 7]]
按行合并列,行数必须相等
d=np.concatenate([p3,p6],axis=1) #axis=1列合并
print(d)
[[0 1 2 0 2 4]
[5 6 7 5 7 9]]
2 聚合操作
x=[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
矩阵内所有元素求和
sum1=np.sum(x)
print(sum1)
105
矩阵内所有元素求最大、最小、平均值
max1=np.max(x)
min1=np.min(x)
mean1=np.mean(x)
print('最大值:{},最小值:{},平均数:{}'.format(max1,min1,mean1))
最大值:14,最小值:0,平均数:7.0
参考网站:runoob.com/numpy
3 排序
sort:矩阵元素从小到大排序;argsort:索引排序
不直接改变原矩阵
不支持降序排序
一维矩阵排序
np1=np.array([1,2,1,4,9,6,3,2])
print(np.sort(np1),'\n',np.argsort(np1))
[1 1 2 2 3 4 6 9]
[0 2 1 7 6 3 5 4] #指指针0的元素最小,指针2元素第2小,以此类推
二维矩阵排序
np2=np.array([[1,2,1],[4,9,6],[3,2,7]])
print(np.sort(np2),'\n',np.sort(np2,axis=0))
[[1 1 2]
[4 6 9]
[2 3 7]]
[[1 2 1]
[3 2 6]
[4 9 7]]
轴向为0沿着行方向,列从小到大排序,默认为沿着列
4 搜索与赋值 where (常用)
print(np.where(np1>3,1,-1)) #满足条件赋值为1,不满足为-1
[-1 -1 -1 1 1 1 -1 -1]
print(np.where(np2>3,1,-1))
[[-1 -1 -1]
[ 1 1 1]
[-1 -1 1]]
5 筛选extract
筛选满足条件的元素返回,不满足的舍弃,不改变原数组
print(np.extract(np2>3,np2))
[4 9 6 7]