首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用numpy的4D线性系统

使用numpy的4D线性系统
EN

Stack Overflow用户
提问于 2022-06-09 11:37:27
回答 1查看 42关注 0票数 0

我有一个像A * x = b这样的线性系统,我想要这样解。numpynumpy.linalg.solve很容易地解决了这个问题。

但是我的A是形状(m, n, m, n)的4D数组,b是形状(m, n)的2D数组,我想要找到形状(m, n)x。实际上,我将A转换为Aexp of shape (m*n, m*n),将b转换为shape (m*n)bexp,以找到xexp并将其转换回x。我的代码就像

代码语言:javascript
复制
Aexp = np.zeros((m*n, m*n))
Bexp = np.zeros(m*n)
for i in range(m):
    for j in range(n):
        Bexp[i*n + j] = B[i, j]
        for r in range(m):
            for s in range(n):
                Aexp[i*n + j, r*n + s] = A[i, j, r, s]
Xexp = np.linalg.solve(Aexp, Bexp)
X = np.zeros((n, m))
for i in range(m):
    for j in range(n):
        X[i, j] = Xexp[i*n+j]

但这不太好。有像X = solve(A, B)这样的函数吗?如果没有,我怎么才能不使用循环呢?

我如何处理3个索引?A.shape = (m, n, p, m, n, p)B.shape = (m, n, p)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-09 11:43:53

numpy.reshape可以合适吗?

代码语言:javascript
复制
import numpy as np
m = 2
n = 3
A = np.zeros((m,n, m,n))
B = np.zeros((m,n))
Aexp = A.reshape((m*n, m*n))
Bexp = B.reshape((m*n)) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72559602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档