用numpy中的另一个小矩阵替换矩阵的子部分(Replace sub part of matrix by another small matrix in numpy)
我是Numpy的新手,想要替换部分矩阵。 例如,我有两个矩阵,A,B由numpy生成
In [333]: A = ones((5,5)) In [334]: A Out[334]: array([[ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.]]) In [335]: B Out[335]: array([[ 0.1, 0.2], [ 0.3, 0.4]])最终,我想让A成为以下矩阵。
In [336]: A Out[336]: array([[ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 0.1, 0.2], [ 1., 1., 1., 0.3, 0.4]])和/或以下
In [336]: A Out[336]: array([[ 1., 1., 1., 0.1, 0.2], [ 1., 1., 1., 0.3, 0.4], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.]])我试过跟随,但它没有用。 我现在不知道:(
A[[0,1],:][:,[3,4]] = B甚至我都尝试过
A[[0,1],:][:,[3,4]] = 1检查四个单元格是否被更改。 你有什么主意吗?
I am new to Numpy and want to replace part of a matrix. For example, I have two matrices, A, B generated by numpy
In [333]: A = ones((5,5)) In [334]: A Out[334]: array([[ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.]]) In [335]: B Out[335]: array([[ 0.1, 0.2], [ 0.3, 0.4]])Eventually, I want to make A be the following matrix.
In [336]: A Out[336]: array([[ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 0.1, 0.2], [ 1., 1., 1., 0.3, 0.4]])and/or the following
In [336]: A Out[336]: array([[ 1., 1., 1., 0.1, 0.2], [ 1., 1., 1., 0.3, 0.4], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.]])I tried like following but it didn't work. I don't have any idea now :(
A[[0,1],:][:,[3,4]] = Bor even I tried like
A[[0,1],:][:,[3,4]] = 1to check whether the four cell are changed or not. Do you have any idea?
最满意答案
以下是如何做到这一点:
>>> A[3:5, 3:5] = B >>> A array([[ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 0.1, 0.2], [ 1. , 1. , 1. , 0.3, 0.4]])Here is how you can do it:
>>> A[3:5, 3:5] = B >>> A array([[ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 1. , 1. ], [ 1. , 1. , 1. , 0.1, 0.2], [ 1. , 1. , 1. , 0.3, 0.4]])更多推荐
发布评论