Controls what kind of data casting may occur.
Defaults to ‘unsafe’ for backwards compatibility.
‘no’ means the data types should not be cast at all.
‘equiv’ means only byte-order changes are allowed.
‘safe’ means only casts which can preserve values are allowed.
‘same_kind’ means only safe casts or casts within a kind,
like float64 to float32, are allowed.
‘unsafe’ means any data conversions may be done.

copy : bool, optional

If copy is False, the result might share some memory with this
matrix. If copy is True, it is guaranteed that the result and
this matrix do not share any memory.