我想增加一个矩阵的一小部分(变量)[下面的示例代码]——但循环运行它们似乎是草率和不雅的——我怀疑这是最慢的计算方法。
我的一个想法是创建另一个一数组,其中包含我想要增加的维度(下面的示例中是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/