Jun*_*hen 5 python arrays numpy
说我有一个阵列
np.zeros((4,2))
我有一个值列表[4,3,2,1],我想分配给以下位置:[(0,0),(1,1),(2,1),(3,0) ]
如果不使用for循环或展平数组,我该怎么做?
我可以使用花式索引来检索值,但不能分配它们.
======更新=========
感谢@hpaulj,我意识到原始代码中的错误是.
当我使用zeros_like启动数组时,它默认为int并截断值.因此,看起来我没有分配任何东西!
wim*_*wim 11
您可以使用元组索引:
>>> import numpy as np
>>> a = np.zeros((4,2))
>>> vals = [4,3,2,1]
>>> pos = [(0,0),(1,1),(2,0),(3,1)]
>>> rows, cols = zip(*pos)
>>> a[rows, cols] = vals
>>> a
array([[ 4., 0.],
[ 0., 3.],
[ 2., 0.],
[ 0., 1.]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7336 次 |
| 最近记录: |