numpy.ndarray.copy#

method

ndarray.copy(order='C')#

Return a copy of the array.

Parameters:
order{‘C’, ‘F’, ‘A’, ‘K’}, optional

Controls the memory layout of the copy. ‘C’ means C-order,‘F’ means F-order, ‘A’ means ‘F’ ifa is Fortran contiguous,‘C’ otherwise. ‘K’ means match the layout ofa as closelyas possible. (Note that this function andnumpy.copy are verysimilar but have different default values for their order=arguments, and this function always passes sub-classes through.)

See also

numpy.copy

Similar function with different default behavior

numpy.copyto

Notes

This function is the preferred method for creating an array copy. Thefunctionnumpy.copy is similar, but it defaults to using order ‘K’,and will not pass sub-classes through by default.

Examples

>>>importnumpyasnp>>>x=np.array([[1,2,3],[4,5,6]],order='F')
>>>y=x.copy()
>>>x.fill(0)
>>>xarray([[0, 0, 0],       [0, 0, 0]])
>>>yarray([[1, 2, 3],       [4, 5, 6]])
>>>y.flags['C_CONTIGUOUS']True

For arrays containing Python objects (e.g. dtype=object),the copy is a shallow one. The new array will contain thesame object which may lead to surprises if that object canbe modified (is mutable):

>>>a=np.array([1,'m',[2,3,4]],dtype=object)>>>b=a.copy()>>>b[2][0]=10>>>aarray([1, 'm', list([10, 3, 4])], dtype=object)

To ensure all elements within anobject array are copied,usecopy.deepcopy:

>>>importcopy>>>a=np.array([1,'m',[2,3,4]],dtype=object)>>>c=copy.deepcopy(a)>>>c[2][0]=10>>>carray([1, 'm', list([10, 3, 4])], dtype=object)>>>aarray([1, 'm', list([2, 3, 4])], dtype=object)
On this page