python - 有没有办法可以用第一列和列之间的关系建立一个矩阵?
问题描述
我正在尝试构建一个 numpy 矩阵 B 知道它的第一列和列之间的关系
更具体地说,我有第一列,如 array([1],[1],[1],[1]) for B ,另一个已知矩阵 A ,关系是 B(t+1)=B(t )+ A(t+1)。其中 B(t) 表示 B 的 t 列。有什么方法可以在不使用 for 循环的情况下使用矩阵计算构建 B?
我试过 np.einsum 但它似乎只能使用已知矩阵进行计算
一个=matrix([[1, 2, 3, 4],
[2, 4, 5, 6],
[3, 5, 6, 7],
[4, 6, 5, 4]])
乙=matrix([[1., 0., 0., 0.],
[1., 0., 0., 0.],
[1., 0., 0., 0.],
[1., 0., 0., 0.]])
现在,我想填充 B 的列(第一列除外)。
我期待决赛
乙 =matrix([[ 1., 3., 6., 10.],
[ 1., 5., 10., 16.],
[ 1., 6., 12., 19.],
[ 1., 7., 12., 16.]])
谢谢!
解决方案
B
您可以通过堆叠 的第一行以及除第一行之外的所有内容来构建一个新矩阵A
。然后你可以np.cumsum()
用来做一个累计和:
A=np.matrix([[1, 2, 3, 4],
[2, 4, 5, 6],
[3, 5, 6, 7],
[4, 6, 5, 4]])
B=np.matrix([[1., 0., 0., 0.],
[1., 0., 0., 0.],
[1., 0., 0., 0.],
[1., 0., 0., 0.]])
np.cumsum(np.hstack([B[:,:1], A[:,1:]]), axis=1)
结果:
matrix([[ 1., 3., 6., 10.],
[ 1., 5., 10., 16.],
[ 1., 6., 12., 19.],
[ 1., 7., 12., 16.]])
推荐阅读
- python - 在数据集中查找第二个最近的点
- sql - 仅当数据在 oracle 发生更改时如何更新数据?
- ios - reCAPTCHA 在 iOS 10 UIWebView 中不起作用
- ios - 在 iphone lldb (obj-c) 中使用 matplotlib
- excel - 结果为空,多列显示在单列中
- google-cloud-platform - 云存储传输服务配额中的“用户”是什么意思?
- excel - Excel Useform:如何隐藏应用程序但在任务栏中有图标(位 64)
- c# - 如何从 GET 请求反序列化 JSON 并将其显示在 Xamarin 的 ListView 上
- c - 在C中以微秒为单位进行定时循环
- c - 我必须将我的数组变成 3d 数组吗?