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