栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Numpy数组及矩阵运算案例

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Numpy数组及矩阵运算案例

文章目录
  • 1.数组四则运算
  • 2.矩阵创建
  • 3. 矩阵运算

1.数组四则运算
import numpy as np
a = np.arange(9, dtype = np.float_).reshape(3,3)
print(a)
b = np.array([11,22,33])
print(np.add(a,b))
print(np.subtract(a,b))
print(np.multiply(a,b))
print(np.divide(a,b))
2.矩阵创建
import numpy as np
import numpy.matlib as nm

# 填充2x2随机矩阵
print(nm.empty((2,2)))
print("=================")

# 创建0阵
print(nm.zeros((2,2)))

# 创建1阵
print(nm.ones((2,3)))
print("=================")

# 创建对角线元素为1的矩阵
print(nm.eye(3,4,0,float))
print(nm.eye(3,4,1,float))
print(nm.eye(3,4,2,float))
print("=================")

# 创建单位阵
print(nm.identity(3,float))
print("=================")

# 创建随机矩阵
print(nm.rand(2,2))
print("=================")

i = np.array([[1,2],[3,4]])
j = np.matrix([[1,2],[3,4]])
print(type(i))
print(type(j))
print(i+j)
3. 矩阵运算
import numpy.matlib as nm
import numpy as np

a = np.array([[1,2],[3,4]])
b = np.array([[11,12],[13,14]])

# 求点积,元素对应相乘
print(np.dot(a,b))
print("=================") # [[1*11+2*13, 1*12+2*14],[3*11+4*13, 3*12+4*14]]

# 求向量点积
print(np.vdot(a,b))
print("=================") # 1*11 + 2*12 + 3*13 + 4*14 = 130

# 求向量内积
print(np.inner(np.array([1,2,3]),np.array([0,1,0]))) # 等价于 1*0+2*1+3*0
print(np.inner(a,b))
print("=================") # 

# 求矩阵乘积
a = [[1,0],[0,1]]
b = [[4,1],[2,2]]
c = [1,2]
print(np.matmul(a,b))
print(np.matmul(a,c))
print("=================") # 

# 多维数组乘积
a = np.arange(8).reshape(2,2,2)  # 三维数组
b = np.arange(4).reshape(2,2) 
print (np.matmul(a,b))
print("=================") # 

# 矩阵行列式
a = np.array([[1,2], [3,4]]) 
print(np.linalg.det(a))
a = [[1,2], [3,4]]
print(np.linalg.det(a))
print("=================") # 

# 求矩阵的逆
a = np.array([[1,1,1],[0,2,5],[2,5,-1]]) 
print(np.linalg.inv(a))
print("=================") # 

# 求矩阵的转置
a = np.array([[1,2,3],[4,5,6]])  #方法1:利用ndarray的T属性
print(a.T)
a = np.matrix([[1,2,3],[4,5,6]]) #方法2:利用transpose()方法
print(a.transpose())             #注意:list不能使用这两种方法
print(a.T)                       # np.array()和np.matrix()可以看成是两种数据格式,对list进行转换
print("=================") # 

# 求线性方程的解
A = [[1,1,1],[0,2,5],[2,5,-1]]   # AX=B
B = [[6],[-4],[27]]
X1 = np.dot(np.linalg.inv(A),B)
X2 = np.linalg.solve(A,B)
print(X1)
print(X2)

参考链接:

  • https://www.runoob.com/numpy/numpy-tutorial.html
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/864303.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号