在矩阵中插入/添加/更新元素

时间:2017-01-25 00:40:22

标签: python python-3.x numpy matrix

假设我已经初始化了一个包含400行,3列的矩阵/数组:

distances = np.zeros([400, 3], dtype=np.float64)

现在,我有一个返回1200个对象的for循环(浮点值),我希望将每个元素“追加”到distances(逐行)或者将这些浮点值分配给矩阵中的每个元素:

distances[0,1] = item1,
distances[0,2] = item2, 
distances[0,3] = item3, 
distances[1,1] = item4,
distances[1,2] = .....

我该怎么做?我尝试了numpy.appendnumpy.insert,但我失败了。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

收集列表中的项目,将此列表转换为NumPy数组并重新整形:

distances = np.array([item1, item2, ... item1200], dtype=float).reshape((400, 3))

答案 1 :(得分:1)

如果您想要随机访问,可以使用枚举(逐行访问)和切片分配来完成:

distances = np.zeros([400, 3], dtype=np.float64)

start=[1,2,3]
for i,_ in enumerate(distances):
    distances[i][:]=start
    start=[x+1 for x in start]
>>> distances
[[   1.    2.    3.]
 [   2.    3.    4.]
 [   3.    4.    5.]
 ..., 
 [ 398.  399.  400.]
 [ 399.  400.  401.]
 [ 400.  401.  402.]]