numpy.copyto

numpy.copyto(dst, src, casting='same_kind', where=True)

Функция numpy.copyto() копирует данные из одного массива в другой с выполнением транслирования если это необходимо.

Параметры:
dst - массив NumPy
Массив в который будут скопированы значения.
src - массив NumPy или подобный ему объект.
Массив из которого будут скопированы данные.
casting - 'no', 'equiv', 'safe', 'same_kind', 'unsafe', (необязательный)
Этот параметр определяет какой тип данных может возникать при копировании. Значение 'no' запрещает отбрасывание типа данных, т.е. при копировании будет скопирован и тип данных; 'equiv' допускает только изменение порядка байтов; 'safe' допускает только те типы данных, которые сохраняют данные; 'same_kind' (по умолчанию) допускает только безопасные методы округления и отбрасывания, например такие как float64 в float32; 'unsafe' допускает любые преобразования данных.
where - список или массив булевых значений
Массив булевых значений, который транслируется по массиву dst и определяет какие элементы будут скопированы из src в dst. По умолчанию равен True, что означает копирование всех данных.
Возвращает:
ndarray - массив NumPy
Массив, который содержит копию значений элементов другого массива, при этом тип данных, в зависимости от параметра casting может и не соответствовать типу данных исходного массива.
Смотрите так же: copy

Примеры

>>> import numpy as np
>>> 
>>> a = np.array([[1, 2], [1, 2]])
>>> 
>>> b = np.array([[0, 9], [9, 0]])
>>> 
>>> np.copyto(a, b)    #  Копирует значения из 'b' в 'a'
>>> 
>>> a
array([[0, 9],
       [9, 0]])
>>> 
>>> b
array([[0, 9],
       [9, 0]])
>>> 
>>> a is b    #  массив 'a' стал полной копией 'b'
False
>>> 
>>> c = np.array([7, 1])
>>> 
>>> np.copyto(a, c)    #  'c' транслируется по массиву 'a'
>>> 
>>> a
array([[7, 1],
       [7, 1]])
>>> 
>>>
>>> a = np.zeros((5, 5))
>>> 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.]])
>>> 
>>> d = np.array([2, 3, 5, 7, 11])    #  'd' будет транслирован по 'a'
>>> 
>>> # Параметр 'where' укажет какие значения будут скопированы
>>> np.copyto(a,d, where = [True, False, True, False, True])
>>> 
>>> a
array([[  2.,   0.,   5.,   0.,  11.],
       [  2.,   0.,   5.,   0.,  11.],
       [  2.,   0.,   5.,   0.,  11.],
       [  2.,   0.,   5.,   0.,  11.],
       [  2.,   0.,   5.,   0.,  11.]])