Python中Numpy矩阵的使用
本文主讲Python中Numpy矩阵的类型、全0全1矩阵的生成、随机矩阵、矩阵的深入程度、矩阵的简单运算、矩阵的数学运算。
**#encoding=utf-8**
import numpy as np
def main():
lst = [[1,3,5],[2,4,6]]
print(type(lst))
np_lst=np.array(lst) #矩阵
矩阵类型
print(type(np_lst))
np_lst=np.array(lst,dtype=np.float) #bool,int,int8,int16,int32,int64,int128,uint8,uint16,float,float16
print(np_lst.dtype) #数据类型
print(np_lst.shape) #数据维数 2行3列
print(np_lst.ndim) #维度 2
print(np_lst.size) #6个字节
全0、全1矩阵
print(np.zeros([2,4])) #2行4列的全0矩阵
print(np.ones([2,4])) #2行4列的全1矩阵
随机矩阵:
print("rand:")
print(np.random.rand(2,4)) #打印随机数2行4列
print("randint:")
print(np.random.randint(1,10,3)) #打印1-10中3个整数随机数
print("rantn:")
print(np.random.randn(2,4)) #正态分布随机数
print(np.random.choice([10,20,30])) #随机选择
print(np.random.beta(1,10,100)) #贝塔分布 print(np.arange(1,11).reshape([2,5]))
lst=np.arange(1,11).reshape([2,5])
深入程度
print(np.exp(lst)) #打印指数
lst=np.array([[[1,2,3,4],[4,5,6,7]],[[7,8,9,10],[10,11,12,13]],[[14,15,16,17],[18,19,20,21]]])
print(lst)
print(lst.sum(axis=0)) #axis 越大深入程度越大
print(lst.max(axis=0))
矩阵的运算
lst1=np.array([10,20,30,40]) lst2=np.array([4,3,2,1])
print(lst1+lst2) #加减乘除
print(lst1*lst2)
print(lst1**2) #平方
print(np.dot(lst1.reshape([2,2]),lst2.reshape([2,2]))) # 点乘,矩阵运算
print(np.vstack((lst1,lst2))) # v拼接
print(np.hstack((lst1,lst2))) # h拼接
print(np.split(lst1,2)) # 分裂
print(np.copy(lst1)) #拷贝
矩阵的数学运算
from numpy.linalg import *
print(np.eye(3)) # 单位矩阵
lst=np.array([[1,2],[3,4]])
print(inv(lst)) # 矩阵的逆
print(np.transpose(lst)) # 矩阵转置
print(det(lst)) # 求行列式 1*4-2*3=-2
print(eig(lst)) #特征值 特征向量
y=np.array([[5],[7]])
print(solve(lst,y)) # 求解方程式 print("coef:相关系数")
print(np.corrcoef([1,0,1],[0,2,1]))
print("打印方程:")
print(np.poly1d([2,1,3]))
if __name__ == "__main__":
main()