如何使用列向量中的值填充知道其索引的矩阵的特定元素
How to fill specific elements of a matrix knowing their indices with values from a column vector
如何使用列向量中的值填充矩阵的下三角部分(包括对角线)的元素?
例如我有:
m=np.zeros((3,3))
n=np.array([[1],[1],[1],[1],[1],[1]]) #column vector
我想用向量 n
替换 m
中索引为 (0,0),(1,0),(1,1),(2,0),(2,1),(2,2)
的值,所以我得到:
m=np.array([[1,0,0],[1,1,0],[1,1,1]])
然后我想对m.T
做同样的操作得到结果:
m=np.array([[1,1,1],[1,1,1],[1,1,1]])
有人可以帮助我吗? n
应该是形状为 (6,1)
的向量
我不确定是否会有特定于 numpy 的巧妙方法来执行此操作,但它看起来相对简单,如下所示:
import numpy as np
m=np.zeros((3,3))
n=np.array([[1],[1],[1],[1],[1],[1]]) #column vector
indices=[(0,0),(1,0),(1,1),(2,0),(2,1),(2,2)]
for ix, index in enumerate(indices):
m[index] = n[ix][0]
print(m)
for ix, index in enumerate(indices):
m.T[index] = n[ix][0]
print(m)
上面的输出是:
[[1. 0. 0.]
[1. 1. 0.]
[1. 1. 1.]]
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
如何使用列向量中的值填充矩阵的下三角部分(包括对角线)的元素?
例如我有:
m=np.zeros((3,3))
n=np.array([[1],[1],[1],[1],[1],[1]]) #column vector
我想用向量 n
替换 m
中索引为 (0,0),(1,0),(1,1),(2,0),(2,1),(2,2)
的值,所以我得到:
m=np.array([[1,0,0],[1,1,0],[1,1,1]])
然后我想对m.T
做同样的操作得到结果:
m=np.array([[1,1,1],[1,1,1],[1,1,1]])
有人可以帮助我吗? n
应该是形状为 (6,1)
我不确定是否会有特定于 numpy 的巧妙方法来执行此操作,但它看起来相对简单,如下所示:
import numpy as np
m=np.zeros((3,3))
n=np.array([[1],[1],[1],[1],[1],[1]]) #column vector
indices=[(0,0),(1,0),(1,1),(2,0),(2,1),(2,2)]
for ix, index in enumerate(indices):
m[index] = n[ix][0]
print(m)
for ix, index in enumerate(indices):
m.T[index] = n[ix][0]
print(m)
上面的输出是:
[[1. 0. 0.]
[1. 1. 0.]
[1. 1. 1.]]
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]