【发布时间】:2017-01-27 18:33:24
【问题描述】:
假设我有一个数组
np.zeros((4,2))
我有一个值列表[4,3,2,1],我想将其分配给以下位置:
[(0,0),(1,1),(2,1),(3,0)]
如何在不使用 for 循环或展平数组的情况下做到这一点?
我可以使用精美的索引来检索值,但不能分配它们。
======更新=========
感谢@hpaulj,我意识到我的原始代码中的错误是。
当我使用zeros_like 启动数组时,它默认为int 并截断值。因此,看起来我没有分配任何东西!
【问题讨论】:
-
arr[idx[:,0], idx[:,1]] = [4,3,2,1], 其中idx = np.array([[0,0],[1,1],[2,2],[3,1]])? -
Position
(2,2)超出了原始数组的范围。 -
是的,您可以使用精美的索引进行分配。试试
a[[0,1,2,3], [0,1,2,1]] = 4,3,2,1。 -
@wim 是的,你是对的。我改变了问题。