【学习笔记】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 分钟前
泛型笔记问答
笔记
爱吃汽的小橘5 分钟前
揭秘802.15.4:物联网通信基石
网络·学习
I'mChloe7 分钟前
机器学习核心分支:深入解析监督学习
人工智能·学习·机器学习
LYS_061819 分钟前
寒假学习(13)(HAL库4+模数电13)
单片机·嵌入式硬件·学习
一点程序21 分钟前
基于微信小程序的英语词汇学习小程序
学习·微信小程序·小程序
Oll Correct25 分钟前
Excel基础操作(五)
笔记·excel
嗯嗯**33 分钟前
Neo4j学习2:概念、数据展示、CQL使用
数据库·学习·neo4j·数据存储·图数据库·序列化·cql
whale fall34 分钟前
如何在同一台电脑里安装32 位 Python 和 64 位 Python
开发语言·笔记·python·学习
阿蒙Amon35 分钟前
TypeScript学习-第9章:类型断言与类型缩小
javascript·学习·typescript
困死,根本不会39 分钟前
OpenCV摄像头实时处理:稳定的红绿激光点实时检测工具
笔记·opencv·学习