Python 在矩阵中插入/添加/更新元素
假设我已经初始化了一个矩阵/数组,它有400行,3列: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,
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矩阵中