numpy对矩阵的运用

import numpy as np
###############1.numpy 矩阵创建 ###############
## 1.矩阵创建
matr1 =np.mat("1 2 3 ; 4 5 6; 7 8 9")
print(matr1)
print(type(matr1))
matr2 =np.natrix([[1,2,3],[4,5,6],[7,8,9]])
print(matr2)
arr1 =np.eye(3)
arr2 =3*np.eye(3)
print(np.bmat('arr1 arr2;arr2 arr1'))

## 2.矩阵运算
matrix1 =matr1+matr2
print(matrix1)
print(2*matrix1)
print(matr1*matr2)
print(np.multiply(matr1.matr2))
## 3.矩阵转置
print(matr2.T)
## 4.矩阵求逆
print(matr2.I)
import numpy as np
#################数组unfunc函数################
## 1.数组里面所有的运算都是对应元素一对一的运算
x =np.array([1,2,3])
y =np.array([4,5,6])
print(x+y)
print(x*y)
print('幂运算',x**y)
print('除法运算',x/y)

## 2.比较运算
print(x>y)
print(x<y)
print(x==y)
print(x!=y)
print(x<=y)
print(x>=y)
print(x<3)

## a=[1 2 3 4 3 4 6 7 3 ]
b =np.array([1,2,3,4,3,4,6,7,3])
## 小于5的
mask =b<5
a =b[mask]
print(a)
## 2的倍数
mask2 =b%2==0
print(b[mask2])
## 3.undunc的广播机制
# 条件:a: n*m    b:一行(元素个数等于a的列数)或一列(行数和a的行数相等)
arr3 =np.array([[0,0,0],[1,1,1],[2,2,2]])
arr4 =np.array([1,2,3]).reshape((3,1))
arr4 =np.array([1,2,3])
print (arr3+arr4)
print (arr3+arr5)
print (arr3+4)
import numpy as np
#################numpy读文件##################
## 1.二进制文件的读取与储存
arr=np.arange(100).reshape((10,10))
np.save('arr',arr)
# 储存的是一个以.npy结尾的二进制文件,里面是一个数组
arr2 =np.arange(100).reshape((25,4))
np.savez('arrz',arr,arr2)
# 返回的是.npz文件

## 2.读取文件
data =np.load('arr.npy')
print(data)

data1 =np.load('arrz.npz')
print(data1['arr_0'])
print(data1['arr_1'])

## 文本文件的写读

# 1.文件保存
np.savetxt('arr.txt',arr,fmt='%d',delimiter=',')

# 2.读取
data2 =np.loadtxt('arr.txt',delimiter=',')  # delimiter必须要有
print(data2)
import numpy as np
##################常用统计函数#################
## 排序
arr =np.random.randint(1,10,size=10)
print(arr)
arr.sort() # 直接排序
#   sort不能直接返回,sorted有返回值
print('排序后',arr)

arr1 =np.random.randint(1,10,size=(3,3))
print(arr1)
arr1.sort(axis=0) # 纵向排序
arr1.sort(axis=1) # 横向排序(默认)
print(arr1)

arr2 =np.random.randint(1,10,size=10)
print(arr2)
print(arr2.argsort())  # 返回的是下标
print(arr2[arr2.argsort()[:5]])  # 取出排序后的前五个

## lexsort()
a =np.array([3,2,6,4,5])
b =np.array([50,30,40,20,10])
c =np.array([400,300,600,100,200])
d =np.lexsort((q,b,c))
print(d)
print(list(zip(a[d],b[d],c[d])))
import numpy as np
################去重#################
arr =np.array(['小红','小明','小强','小华','小红','小红','小明','小红','小明','小强','小华','小红','小红','小明','小红','小明','小强','小华','小红','小红','小明',])
## 去重:set
priint('去重之后:',np.unique(arr))

## 整体重复
arr2 =np.arange(20).reshape((5,4))
print (np.tile(arr,3)) # tile针对数组整体重复
print(np.tile(arr2,3))

## 对元素进行重复:(重复次数,axis =0是纵向,1是横向)
print(arr2.repeat(2,axis =0)) #纵向
print(arr2.repeat(2,axis =1)) #横向
#############统计函数###############
arr =np.arrange(20),reshape((5,4))
print('所有元素的和:',np.sum(arr2))
print('所有元素的和:',arr.sum())
print('纵向求和:',arr.sum(axis =0))
print('横向求和:',arr.sum(axis =1))
print('平均值:',np.mean(arr2))
print('平均值:',arr.mean())
print('纵向平均值:',arr.mean(axis =0))
print('横向平均值:',arr.mean(axis =1))
print('方差:',arr.var())
print('纵向方差:',arr.var(axis =0))
priint('标准差:',arr.std(axis =0))
print('最小值:',arr.min())
print('最大值:',arr.max())
print('最小值下标:',arr.argmin())
print('最大值下标:',arr.argmin())
print('累计和:',arr.cumsum())
priint('累计积:',arr.cumprod())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值