https://numpy.org/doc/stable/reference/generated/numpy.dtype.html
https://numpy.org/doc/stable/reference/arrays.dtypes.html
Default data type in Python: strings, integer, float, boolean, complex. NumPy has some extra data types.
A data type object describes how the bytes in the fixed-size block of memory corresponding to an array item should be interpreted.
# Using array-scalar types.
dt_int = np.dtype(int)   # Python-compatible integer
# "b" (byte), "i1", 'int8';
# "h", "i2", "int16";
# "i", "i4", "int32"; "i8", "int64" ('int' 64-bit);
# unsigned int: "B", "u1", 'uint8';
# "H", "u2", 'uint16';
# "u4", "uint32";
# "u8", "uint64";
dt_float = np.dtype(float)   # Python-compatible floating-point number
# "f2", 'float16';
# "f", "f4", 'float32' ('float' in 32-bit);
# "d", "f8", 'float64' ('double', 'float' in 64-bit);
# 'float128';
dt_bool = np.dtype(bool)
dt_complex = np.dtype(complex)
# 'complex64', 'complex128', 'complex256'
dt_object = np.dtype(object)   # Python object
# Sized aliases to dtypes (useful for Numba). np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.float16, np.float32, np.float64, np.complex64, np.complex128
np.sqrt(np.array([-1, 0, 1])) # default dtype=float # RuntimeWarning: invalid value encountered in sqrt # array([nan, 0., 1.]) np.sqrt(np.array([-1, 0, 1], dtype=complex)) # array([0.+1.j, 0.+0.j, 1.+0.j]) a = np.array([1, 2, 3], dtype=complex) a.real # or np.real(a) # array([1., 2., 3.]) a.imag # or np.imag(a) # array([0., 0., 0.])
# Structured types, fields with names.
dt_gender = np.dtype([("gender","S1")])   # M/F string
dt_person = np.dtype([("name","S25"), ("age", "u1")])
dt_RGBA = np.dtype([('R','u1'), ('G','u1'), ('B','u1'), ('A','u1')])
dt_rgb = np.dtype({'names': ('r','g','b'), 'formats': ('u1','u1','u1')})
# Converting data types.
a = np.array([1.1, 0, 3.1])   # array([1.1, 0., 3.1])
print(a.dtype)   # dtype('float64')
b = a.astype(int)   # array([1, 0, 3]), copy
print(b.dtype)   # dtype('int32')
np.may_share_memory(a, b)   # False
c = a.astype(bool)   # array([ True, False, True])
Conversion from string to int: ["1","2"], ["a","2"] (ValueError).