我在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
答案 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情况可能有点过于复杂。