在python中为多维数组添加值1



我用python创建了一个多维numpy数组,如下所示:

>>> import numpy as np
>>> a = np.zeros((3,5))
>>> print a
>>>[[ 0.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.]]`

我想在a[1:2]和a[2:3]处用++1加1。结果应该如下所示:

>>>[[ 0.  0.  1.  1.  1.]
 [ 1.  1.  1.  1.  0.]
 [ 0.  0.  0.  0.  0.]]

我怎么能找到这个?有人能帮帮我吗?

谢谢你,

krank42

最好的答案很大程度上取决于为什么?

您可以flatten,在一行上进行更改,reshape:

af = a.flatten()
af[2:9] += 1
a = af.reshape(a.shape)

在这种情况下,您必须自己计算索引。在这种情况下很简单:[0,2]变成row x #columns + column = 0 x 5 + 2 = 2,[1,4]变成1 x 5 + 4 = 9。请注意,python中的索引从0开始,而不是从1开始。第一行第一列为[0,0]

有一些辅助函数用于索引数学,在这种情况下最接近的是numpy.ravel_multi_index,但对于2D情况可能有点太复杂了。

相关内容

  • 没有找到相关文章

最新更新