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

Python 在矩阵中插入/添加/更新元素,python,python-3.x,numpy,matrix,Python,Python 3.x,Numpy,Matrix,假设我已经初始化了一个矩阵/数组,它有400行,3列: distances = np.zeros([400, 3], dtype=np.float64) 现在,我有一个for循环,它返回1200个对象(浮点值),我想将每个元素“附加”到距离中(逐行),或者将这些浮点值分配给矩阵中的每个元素,如下所示: distances[0,1] = item1, distances[0,2] = item2, distances[0,3] = item3, distances[1,1] = item4,

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

distances = np.zeros([400, 3], dtype=np.float64)
现在,我有一个for循环,它返回1200个对象(浮点值),我想将每个元素“附加”到
距离中(逐行),或者将这些浮点值分配给矩阵中的每个元素,如下所示:

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

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

将您的项目收集到一个列表中,将此列表转换为NumPy数组并重新塑造:

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

将项目收集到列表中,将此列表转换为NumPy数组并重塑形状:

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

如果需要随机访问,可以使用枚举(获取逐行访问)和切片分配:

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.]]

如果需要随机访问,可以使用枚举(获取逐行访问)和切片分配:

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.]]

要更改矩阵的大小,还是要为现有400x3矩阵的元素分配这些值?我要分配这些1200个对象(浮点值)在400x3矩阵中,您要更改矩阵的大小,还是要为现有400x3矩阵的元素分配这些值?我要将这些1200个对象(浮点值)分配到400x3矩阵中