Python 矩阵操作:在numpy中减去2D矩阵和3D矩阵

Python 矩阵操作:在numpy中减去2D矩阵和3D矩阵,python,numpy,matrix,j,Python,Numpy,Matrix,J,如果我有三维矩阵,比如: cor =: 3 3 3 $ i.5 cor 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 d =: 3 3 $ i.5 d 0 1 2 3 4 0 1 2 3 和二维矩阵类似: cor =: 3 3 3 $ i.5 cor 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 d =: 3 3 $ i.5 d

如果我有三维矩阵,比如:

cor =: 3 3 3 $ i.5
   cor
0 1 2
3 4 0
1 2 3

4 0 1
2 3 4
0 1 2

3 4 0
1 2 3
4 0 1
d  =: 3 3 $ i.5

   d
0 1 2
3 4 0
1 2 3
和二维矩阵类似:

cor =: 3 3 3 $ i.5
   cor
0 1 2
3 4 0
1 2 3

4 0 1
2 3 4
0 1 2

3 4 0
1 2 3
4 0 1
d  =: 3 3 $ i.5

   d
0 1 2
3 4 0
1 2 3
用J语言计算起来非常简单:在符号后面加上“2”(通过2D矩阵)

d -"2 cor
 0  0  0
 0  0  0
 0  0  0

_4  1  1
 1  1 _4
 1  1  1

_3 _3  2
 2  2 _3
_3  2  2
但我还是一个新手

cor - d 

ValueError: Unable to coerce to Series/DataFrame, dim must be <= 2: (59, 59, 59)
cor-d

ValueError:无法强制转换为Series/DataFrame,dim必须在减法之前,您需要将d的形状(当前为(3,3))与cor的形状(当前为(3,3,3))相匹配。请尝试
cor-d[:None]
。这基本上告诉numpy使用现有的d形状(
)并为最后一个维度创建一个新轴(
).

你的代码是什么编程语言?这不是python。这是用J语言编写的,我只想用python计算这些东西,你想从3D矩阵的哪个维度减去2D矩阵?以及相应维度的哪个索引?我添加了python代码scotty!所以基本上我试着从沿3d矩阵的最后一个轴移动3d矩阵另一种方法是
cor-d[:,:,np.newaxis]
,因为您需要向2D矩阵添加第三个dim