python - 如何更改 numpy 数组的一部分的值?

标签 python arrays numpy slice

我的问题比实际问题更具体。考虑以下数组:

from numpy import zeros, ones

array1 = ones((3, 3), bool)
array1[0][0] = 0
array1[0][2] = 0
array1[2][0] = 0
array1[2][2] = 0

array2 = zeros((12, 12), bool)

现在我正在寻找一种方法,我可以引用与 array1 相同比例的 array2 的二维部分,以便我可以将 array1 的正值添加到它。我知道有一些方法可以使用循环来做到这一点,但我更喜欢有一个像 array2[(some way of getting a 3x3 part of array2)] |= array1

这样的语句

最佳答案

使用 float 的示例的输出似乎更容易理解:

>>> a1 = numpy.ones((3, 3))
>>> a2 = numpy.ones((12, 12))
>>> a2[:3,:3] += a1
>>> a2
array([[ 2.,  2.,  2.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 2.,  2.,  2.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 2.,  2.,  2.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.]])

此外,请注意您可以执行以下操作:

>>> a2[slice(None, a1.shape[0]), slice(None, a1.shape[1])]
array([[ 2.,  2.,  2.],
       [ 2.,  2.,  2.],
       [ 2.,  2.,  2.]])

关于python - 如何更改 numpy 数组的一部分的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5760862/

相关文章:

python - matplotlib 中的 2d hsv 颜色空间

python - R 到 Python/Numpy 线性回归曲线

python - 在python中找到四次多项式4次最小正实根的最快方法

python 从标签中搜索

python - 无法登录 Django 单元测试

php - 使用 php 进行数组搜索

php - 如何在 PHP 中向多维数组添加元素?

arrays - 如何使用另一个向量的值从 numpy 矩阵中选择列

python - 我应该把#! (shebang) 在 Python 脚本中,它应该采用什么形式?

python - 如何更改颜色并在 python 曲面图上添加网格线?