假设我有以下 numpy 数组:
>>> a=np.zeros(10)
>>> a
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
我可以用numpy.ufunc.at http://docs.scipy.org/doc/numpy/reference/generated/numpy.ufunc.at.html就地修改该数组:
>>> np.add.at(a, [0,3], 2)
>>> a
array([ 2., 0., 0., 2., 0., 0., 0., 0., 0., 0.])
如果我现在尝试使用矩阵,我认为该方法不起作用:
>>> m=np.zeros(16).reshape(4,4)
>>> m
array([[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]])
>>> np.add.at(m, [(0,0),(1,1)], 2)
>>> m
array([[ 0., 4., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]])
我的期望基于提供元组列表[(0,0),(1,1)]
将会:
[[ 2., 0., 0., 0.],
[ 0., 2., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]]
关于我用作索引列表的任何建议numpy.ufunc.at
得到那个矩阵?