通过预定义的数组分配numpy数组元素

时间:2014-04-08 13:48:28

标签: python arrays numpy slice

我的数组newxnewy的大小分别为nx*nsny*ns nx!=ny。 我希望能够通过以下方式设置数组newxnewyf定义的元素:

f = np.zeros([nx,ny,ns])
for s in range(ns):
    f[newx[:,s],newy[:,s],s] = s

不幸的是,这会出错:

ValueError: shape mismatch: objects cannot be broadcast to a single shape

我理解错误,但对于我的生活,我们无法找出正确的语法。请帮忙。

编辑提供了示例代码:

import numpy as np

newx = np.array([[0,1],
                 [1,2],
                 [2,3],
                 [3,0]])
newy = np.array([[0,1],
                 [1,2],
                 [2,0]])

f = np.zeros([4,3,2])
for s in range(2):
    f[newx[:,s],newy[:,s],s] = s

1 个答案:

答案 0 :(得分:1)

newx和newy必须具有相同的形状,因此您必须重新塑造它们。

f = np.zeros([4,3,2])

newX = newx.reshape(8,1)
newY = newy.reshape(6,)

for s in range(2):
    f[newX , newY ,s] = s


print f