numpy.char.chararray.copy#

method

char.chararray.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’ if a is Fortran contiguous, ‘C’ otherwise. ‘K’ means match the layout of a as closely as possible. (Note that this function and `numpy.copy` are very similar but have different default values for their order= arguments, and this function always passes sub-classes through.)

`numpy.copy`

Similar function with different default behavior

`numpy.copyto`

Notes

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

Examples

```>>> x = np.array([[1,2,3],[4,5,6]], order='F')
```
```>>> y = x.copy()
```
```>>> x.fill(0)
```
```>>> x
array([[0, 0, 0],
[0, 0, 0]])
```
```>>> y
array([[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 the same object which may lead to surprises if that object can be modified (is mutable):

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

To ensure all elements within an `object` array are copied, use `copy.deepcopy`:

```>>> import copy
>>> a = np.array([1, 'm', [2, 3, 4]], dtype=object)
>>> c = copy.deepcopy(a)
>>> c[2][0] = 10
>>> c
array([1, 'm', list([10, 3, 4])], dtype=object)
>>> a
array([1, 'm', list([2, 3, 4])], dtype=object)
```