gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 13:52:06 25 4
gpt4 key购买 nike

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com