python - 在 Python 中增加矩阵的子集

标签 python matrix numpy

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

相关文章:

Python 生成器索引优化

matlab - 检查数据是否存在于另一个矩阵中,如果存在,则替换它

matrix - Julia 中矩阵列的平均值

r - 如何按矩阵中的名称而不是数字索引重命名特定列?

pandas - NumPy/ Pandas : convert array of "steps" into bool mask

python - Django 中的 MultiValueDictKeyError

python - 模块未找到错误: No module named 'dask.dataframe' ; 'dask' is not a package

python - 如果 numpy 中的轴中存在任何 nan,则将 nan 设置为整个轴

Python: 'numpy.ndarray' 对象没有属性 'violinplot'

python - 奇怪的 HTML 代码看起来像这样 b'\xff\xd8\xff\xe0