python三维、四维数组相乘

本文探讨了Python中三维和四维数组的乘法操作,通过具体的例子来帮助理解乘法规则,同时期待了解该主题的读者提供更深入的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

没找到规则,只能通过具体例子理解,有知道具体规则的望不吝赐教。
例1,三维数组相乘

import numpy as np
a=np.zeros((2,2,2))
a[:,:,0]=([[3,6],[5,8]])
a[:,:,1]=([[2,5],[7,2]])
b=np.zeros((2,2,2))
b[:,:,0]=([[3,2],[9,6]])
b[:,:,1]=([[7,8],[1,0]])
c=a*b

则三维矩阵a、b的两页分别是:

a(:,:,0)=(3568),a(:,:,1)=(2752)

b(:,:,0)=(3926),b(:,:,1)=(7180)

则c=a*b为a、b的两页分别相乘(注意:这里是点乘),得结果为
c(:,:,0)=(9451248),c(:,:,1)=(147400)

可看出c的维数为(2,2,2)。
例2,四维数组相乘
import numpy as np
a=np.zeros((2,2,2,2))
a[:,:,0,0]=([[0,8],[3,6]])
a[:,:,0,1]=([[5,1],[4,7]])
a[:,:,1,0]=([[9,2],[5,7]])
a[:,:,1,1]=([[2,0],[3,9]])
b=np.zeros((2,1,1,2))
b[:,0,0,0]=([3,2])
b[:,0,0,1]=([9,4])
c=a*b

自定义称第四维为张,则四维矩阵a、b对应的不同张、页分别是:

a(:,:,0,0)=(0386),a(:,:,0,1)=(5417)

a(:,:,1,0)=(9527),a(:,:,1,1)=(2309)

b(:,0,0,0)=(32),b(:,0,0,1)=(94)

将a的每张每页与b的每张每页对应相乘(注意:这里仍是点乘),b在由两行一列补成了两行两列进行相乘。
c(:,:,0,0)=(062412),c(:,:,0,1)=(4516928)

c(:,:,1,0)=(2710614),c(:,:,1,1)=(1812036)

c的维度为(2,2,2,2)。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值