我有一些使用numpy的2d数组,我想将子区域从一个复制到另一个。例如,如果我从以下内容开始:
dest = numpy.zeros((4, 4))
# array([[0., 0., 0., 0.],
# [0., 0., 0., 0.],
# [0., 0., 0., 0.],
# [0., 0., 0., 0.]])
src = numpy.ones((4, 4))
# array([[1., 1., 1., 1.],
# [1., 1., 1., 1.],
# [1., 1., 1., 1.],
# [1., 1., 1., 1.]])
我想说的是src
应该被复制到dest
的(2,1)
中,这样源代码看起来像:
array([[0., 0., 0., 0.],
[0., 0., 1., 1.],
[0., 0., 1., 1.],
[0., 0., 1., 1.]])
或者如果(-3, 0)
,那么:
array([[1., 0., 0., 0.],
[1., 0., 0., 0.],
[1., 0., 0., 0.],
[1., 0., 0., 0.]])
我可以用老式的双索引循环来实现这一点,但我希望numpy有一些聪明的魔法。我查看了take
,但看不出如何使它成为这项工作的工具。你知道吗
这两个都可以通过
numpy
索引来完成。要了解这是如何工作的,documentation is always your friend。你知道吗您的第一个案例:
你的第二个例子:(你指出第3栏,但你的结果表明-4)
相关问题 更多 >
编程相关推荐