用numpy中的另一个小矩阵替换矩阵的子部分(Replace sub part of matrix by another small matrix in numpy)

编程入门 行业动态 更新时间:2024-10-28 14:23:13
用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]] = B

or even I tried like

A[[0,1],:][:,[3,4]] = 1

to 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]])

更多推荐

本文发布于:2023-04-29 04:24:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1335290.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:矩阵   Replace   numpy   small   matrix

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!