Я хочу скопировать один массив в другой с другим размером. Я хотел бы такую функцию:numpy blit (копировать часть массива на другой с другим размером)
blit(destimg,src,dstlocation)
, например blit(zeros((7,7)),ones((3,3)),(4,4))
приведет к
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., 1., 1., 1.],
[ 0., 0., 0., 0., 1., 1., 1.],
[ 0., 0., 0., 0., 1., 1., 1.]])
Верхний левый центр массива src
теперь в месте (4,4)
массива destimg
,
если бы я сделал blit(zeros((7,7)),ones((3,3)),(5,5))
я хотел бы получить:
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., 0.],
[ 0., 0., 0., 0., 0., 1., 1.],
[ 0., 0., 0., 0., 0., 1., 1.]])
Массив src
не вписывается в destimg
, но его левый верхний угол все еще находится в правильном положении.
Не можете вы добиться того, что вы хотите с помощью простого присваивания (т.е. '' = оператор) и с использованием правильной индексации? –
@ Jan-PhilipGehrcke Я могу, но для случаев, когда массив src не подходит, я должен был бы сделать некоторые вычисления, чтобы выяснить правильную индексацию. Мне было интересно, есть ли у numpy уже функция для этого. –
Почему ваша функция '' 'blit''' не достаточна? – wwii