我想增加一个矩阵的一小部分(变量)[下面的示例代码]——但循环运行它们似乎是草率和不雅的——我怀疑这是最慢的计算方法。
我的一个想法是创建另一个一数组,其中包含我想要增加的维度(下面的示例中是2x3),并用零填充这个临时数组,使其与原始数组具有相同的维度。我可以把它们加起来。
不确定如何在numpy中完成此填充,或者这是否是执行此计算的最有效方法?我想尽量优化这个。

>>> import numpy as np
>>> a = np.zeros((10,10))
>>> for i in range(3,5):
...     for x in range(4,7):
...         a[i][x] += 1
>>> a
array([[ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  1.,  1.,  1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  1.,  1.,  1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]])

最佳答案

你也可以这样做,只要:

 a[3:5,4:7] += 1

关于python - 在Python中递增矩阵的子集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4836048/

10-12 13:54