diff --git a/ltfatpy/comp/assert_sigreshape_pre.py b/ltfatpy/comp/assert_sigreshape_pre.py
index 1383c394c46b122687dff94295ef29d2f0e26b37..2cb2aa73f4cad1fc2c2b6ab4e31ee4b192c2a6de 100644
--- a/ltfatpy/comp/assert_sigreshape_pre.py
+++ b/ltfatpy/comp/assert_sigreshape_pre.py
@@ -104,8 +104,8 @@ def assert_sigreshape_pre(f, L=None, dim=None):
         f = np.asarray(f)
 
 # ----Check that f type is numeric
-    if (not np.issubdtype(f.dtype, np.float) and
-       not np.issubdtype(f.dtype, np.complex) and
+    if (not np.issubdtype(f.dtype, np.floating) and
+       not np.issubdtype(f.dtype, np.complexfloating) and
        not np.issubdtype(f.dtype, np.integer)):
         raise TypeError("f data type should be numeric.")
     D = f.ndim
diff --git a/ltfatpy/comp/comp_sigreshape_pre.py b/ltfatpy/comp/comp_sigreshape_pre.py
index 39569a10860617ccd3be3622a86f4fbf81fd35bf..9d6a58e6d85ec1dc54df3af93b64ddd8b1c67fd0 100644
--- a/ltfatpy/comp/comp_sigreshape_pre.py
+++ b/ltfatpy/comp/comp_sigreshape_pre.py
@@ -75,8 +75,8 @@ def comp_sigreshape_pre(f, do_ndim):
     """
     if not isinstance(f, np.ndarray):
         raise ValueError("f should be a numpy array.")
-    elif f.size == 0 or (not np.issubdtype(f.dtype, np.float) and
-                         not np.issubdtype(f.dtype, np.complex) and
+    elif f.size == 0 or (not np.issubdtype(f.dtype, np.floating) and
+                         not np.issubdtype(f.dtype, np.complexfloating) and
                          not np.issubdtype(f.dtype, np.integer)):
         raise ValueError('The input must be non-empty numeric.')
 
diff --git a/ltfatpy/comp/comp_window.py b/ltfatpy/comp/comp_window.py
index e2b5f7fe852925a9c4023a7ae26f49448f909ca7..51474d1ada9da6110e09df098e59146999b911db 100644
--- a/ltfatpy/comp/comp_window.py
+++ b/ltfatpy/comp/comp_window.py
@@ -247,7 +247,7 @@ def comp_window(g, a, M, L=None):
             g = fir2long(g, int(np.ceil(g.shape[0] / M) * M))
 
         # Information to be determined post creation.
-        info['wasreal'] = np.issubdtype(g.dtype, np.float)
+        info['wasreal'] = np.issubdtype(g.dtype, np.floating)
         info['gl'] = g.shape[0]
         if L is not None and info['gl'] < L:
             info['isfir'] = True
diff --git a/ltfatpy/gabor/dgtreal.py b/ltfatpy/gabor/dgtreal.py
index ea029545dba6110133831ceb6b171299533f820a..a395f06a0881158ca554dac1ed334329a46bdb1f 100644
--- a/ltfatpy/gabor/dgtreal.py
+++ b/ltfatpy/gabor/dgtreal.py
@@ -178,7 +178,7 @@ def dgtreal(f, g, a, M, L=None, pt='freqinv'):
     """
     (f, gnum, _, Ls) = gabpars_from_windowsignal(f, g, a, M, L)[0:4]
 
-    if not np.issubdtype(gnum.dtype, np.float):
+    if not np.issubdtype(gnum.dtype, np.floating):
         raise ValueError('The window must be real-valued.')
 
     # verify pt
diff --git a/ltfatpy/gabor/gabdual.py b/ltfatpy/gabor/gabdual.py
index b38183ce728c351c56feb8cb15d2755f4c5ce7cc..6df3284d267f02dd1f8b960889309d0283bfa37f 100644
--- a/ltfatpy/gabor/gabdual.py
+++ b/ltfatpy/gabor/gabdual.py
@@ -183,7 +183,7 @@ def gabdual(g, a, M, L=None):
         gd = comp_gabdual_long(g, a, M)*scale
 
     # post process result
-    if np.issubdtype(g.dtype, np.float):
+    if np.issubdtype(g.dtype, np.floating):
         # If g is real then the output is known to be real.
         gd = gd.real
 
diff --git a/ltfatpy/gabor/gabtight.py b/ltfatpy/gabor/gabtight.py
index b89f683f121c0e97edfcae06c6456ffa4428e8de..595ed660a55db5641db6adb5f2e4a43d07339f58 100644
--- a/ltfatpy/gabor/gabtight.py
+++ b/ltfatpy/gabor/gabtight.py
@@ -191,7 +191,7 @@ def gabtight(g, a, M, L=None):
         gt = comp_gabtight_long(g, a, M) * scale
 
     # post process result
-    if np.issubdtype(g.dtype, np.float):
+    if np.issubdtype(g.dtype, np.floating):
         # If g is real then the output is known to be real.
         gt = gt.real
 
diff --git a/ltfatpy/gabor/idgtreal.py b/ltfatpy/gabor/idgtreal.py
index 6076ad81eda66c92c57447f2f357f9f1bbfcbc84..bca3308b6302f844b1c899c50d52535324f470e5 100644
--- a/ltfatpy/gabor/idgtreal.py
+++ b/ltfatpy/gabor/idgtreal.py
@@ -204,7 +204,7 @@ def idgtreal(coef, g, a, M, Ls=None, pt='freqinv'):
     if L < info['gl']:
         raise ValueError('Window is too long.')
 
-    if not np.issubdtype(g.dtype, np.float):
+    if not np.issubdtype(g.dtype, np.floating):
         raise ValueError('The window must be real-valued.')
 
     # verify pt
diff --git a/ltfatpy/sigproc/normalize.py b/ltfatpy/sigproc/normalize.py
index c5b16a48e64fbd9fc1f95b80a730618b8e77dbe4..e7df72040e000c29f092e71ffb6d686782888100 100644
--- a/ltfatpy/sigproc/normalize.py
+++ b/ltfatpy/sigproc/normalize.py
@@ -151,7 +151,7 @@ def normalize(f, norm='2', dim=None):
             fnorm[ii] = s0norm(f[:, ii])
             f[:, ii] = f[:, ii] / fnorm[ii]
         elif norm == 'wav':
-            if np.issubdtype(f.dtype, np.float):
+            if np.issubdtype(f.dtype, np.floating):
                 fnorm[ii] = LA.norm(f[:, ii], np.inf)
                 f[:, ii] = 0.99 * f[:, ii] / fnorm[ii]
             else:
diff --git a/ltfatpy/tests/datasets/read_ref_mat.py b/ltfatpy/tests/datasets/read_ref_mat.py
index c033a46894b826969186dc346ec1292f607fc0ae..855766377923f5d5dfd67cf5cd0c914931577727 100644
--- a/ltfatpy/tests/datasets/read_ref_mat.py
+++ b/ltfatpy/tests/datasets/read_ref_mat.py
@@ -115,7 +115,7 @@ def _adapt_type(val):
     """
     res = val
     if isinstance(val, np.ndarray):
-        if np.issubdtype(val.dtype, np.unicode):
+        if np.issubdtype(val.dtype, np.unicode_):
             # convert the unicode numpy arrays to standard unicode strings
             res = val.tolist()
             # convert boolean values