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

时间:2014-06-23 19:48:51

标签: python arrays numpy multidimensional-array

我在python中创建了一个multidimension 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.]]`

我想在[1:2]到[2:3]的情况下将++ 1加1。结果应如下所示:

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

我怎样才能达到这个目标?有人能帮助我吗?

非常感谢,

krank42

1 个答案:

答案 0 :(得分:1)

最佳答案在很大程度上取决于问题原因?

您可flatten,在一行进行更改,reshape

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

在这种情况下,您必须自己计算指数。在这种情况下很简单:[0,2]变成行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情况可能有点过于复杂。