【学习笔记】einsum(爱因斯坦求和)

文章目录


einsum(爱因斯坦求和)

einsum 是 Python 中 NumPy 库的一个函数,它提供了一种非常灵活的方式来进行多维数组的对角线操作、矩阵乘法、向量点积、张量积等操作。不过这需要一定的学习成本。本文旨在了解einsum的使用方法,并给出一些演示案列。

基本语法

c 复制代码
numpy.einsum(subscripts, *operands)
  • subscripts 是一个字符串,用来描述操作的输入和输出数组的维度以及如何进行操作。
  • *operands 是一个或多个数组,即要进行操作的输入数组。

对角线操作

c 复制代码
# 对角线操作:
import numpy as np
a = np.arange(9).reshape(3, 3)
print(a)
print("-"*20)
np.einsum('ii', a)  

打印结果为:

矩阵乘法

c 复制代码
# 矩阵乘法
a = np.arange(4).reshape(2, 2)
b = np.arange(4, 8).reshape(2, 2)
print(a)
print("="*20)
print(b)
np.einsum('ij,jk->ik', a, b)

打印结果为:

向量点积

c 复制代码
# 向量点积:
a = np.array([1, 2, 3])
b = np.array([0, 1, 0])
print(a)
print("="*20)
print(b)
np.einsum('i,i', a, b)  # 结果是 2

打印结果为:

张量积

c 复制代码
# 张量积:
a = np.array([1, 2])
b = np.array([3, 4])
print(a)
print("="*20)
print(b)
np.einsum('i,j', a, b)  # 结果是 [[ 3.,  4.], [ 6.,  8.]]

总结

einsum 非常强大,但也需要仔细设计输入的 subscripts 字符串,以确保正确执行所需的操作。

相关推荐
淘矿人4 分钟前
2026年4月-DeepSeek V4 vs GPT-5.5深度对比测评:weelinking一键切换实测
服务器·数据库·人工智能·python·gpt·学习·php
一只机电自动化菜鸟8 分钟前
一建机电备考笔记(27)测量技术—仪器(含考频+题型)
经验分享·笔记·学习·职场和发展·求职招聘·课程设计
xiaoxiaoxiaolll21 分钟前
《Light: Science & Applications》SSH模型能带首次在光子芯片上直接读出:混合频率架构赋能拓扑量子模拟
学习
Be for thing21 分钟前
Android Studio 常用快捷键总结
android·学习
茜子.Java36 分钟前
postman 进阶使用教程
学习
爱上好庆祝42 分钟前
学习js的第四天
前端·css·学习·html·css3·js
d111111111d44 分钟前
UAER问题+修复小bug
前端·javascript·笔记·stm32·单片机·嵌入式硬件·学习
星幻元宇VR1 小时前
VR校园安全学习机:让安全意识从“心”出发
科技·学习·安全·vr·虚拟现实
烤麻辣烫1 小时前
算法--二分搜索
java·开发语言·学习·算法·intellij-idea
代码丰1 小时前
Github高赞项目50K learn-claude-code 的学习笔记总结
笔记·学习·github