# Fix – attributeerror: module numpy has no attribute int

The **attributeerror: module numpy has no attribute int** error occurs when we try to call the **int** attribute of **NumPy** which does not exist. This article walks you through the reasons behind this error and also we will discuss possible solutions to fix it.

**Why does attributeerror: module numpy has no attribute int occurs and How to Fix it?**

This error can occur due to various reasons. Below are some of the possible causes of the error along with their corresponding solutions.

**Reason 1: ****NumPy**** Aliases for Built-in Python Functions are Removed**

The **attributeerror: module numpy has no attribute int** error occurred due to the removal of aliases for built-in Python functions in NumPy **version 1.24** and above. Before **version 1.20**, aliases such as **np.int** were available in NumPy and were used as an alias for **int()**, while **np.float** was an alias for **float()**, and so on. However, as these aliases created confusion for new users and could potentially lead to duplication of functionality, they were deprecated in NumPy **version 1.20** and completely removed in **version 1.24.**

Now, if someone tries to use these aliases in NumPy version 1.24 or higher, the **AttributeError: module numpy has no attribute int** error will occur.

Let’s see an example below:

import numpy as np

score = np.int(20)

**Output**

DeprecationWarning: `np.int` is a deprecated alias for the built-in `int`.

On the execution of the above code, we get **DeprecationWarning** that shows that **np.int** alias is depreciated for the built-in int function. Let’s check the version of **numpy** installed on my system using the following code snippet:

import numpy as np

print(np.__version__)

**Output**

1.21.5

We can see currently, we are using NumPy **version 1.21.5** which is why we got the deprecation warning. As we have seen above **np.int** alias was deprecated in NumPy version 1.20.

Now let’s install version 1.24 of the **NumPy** and run the above code to see if we get any errors.

pip install numpy==1.24

We have successfully installed the **Numpy v1.24**. Now let’s run the code:

import numpy as np

myNumber = np.int(50)

print(myNumber)

**Output**

AttributeError: module 'numpy' has no attribute 'int'

This message indicates that the code attempted to access an attribute named int in the **NumPy** module, but the attribute does not exist. This happened because the code assumes that **NumPy** has the same attributes as the built-in **int** type in Python, which is not the case.

**Solution 1:**

To Fix this error, it is recommended to use the built-in Python functions directly instead of using the NumPy aliases. Or replace these aliases with the equivalent NumPy scalar types.

Have a look at the below table to see the list of the depreciated aliases and the equivalent built-in Python types as well **Numpy** provides **NumPy scalar type **that can be replaced with these aliases.

Deprecated | Python types | NumPy scalar types for precision |

numpy.int | int | numpy.int_ (default), numpy.int64, or numpy.int32 |

numpy.float | float | numpy.float64, numpy.float_, numpy.double (equivalent) |

numpy.bool | bool | numpy.bool_ |

numpy.str | str | numpy.str_ |

numpy.object | object | numpy.object_ |

numpy.complex | complex | numpy.complex128, numpy.complex_, numpy.cdouble (equivalent) |

numpy.unicode | str | numpy.unicode_ |

numpy.long | int | numpy.int_ (C long), numpy.longlong (largest integer type |

Please find the link to the documentation where this table is defined.

The **NumPy** module has removed the 8 aliases listed in the table above. If you use any of these aliases in your code, it will result in an **AttributeError** being raised. For instance, if you attempt to use the **numpy.float** alias instead of the built-in Python float type by calling **numpy.float(20)**, you will encounter the following error message: **AttributeError: module ‘numpy’ has no attribute ‘float’.**

Now, fix the **AttributeError: module ‘numpy’ has no attribute ‘int’ **error, in the above code, using Python built-in **int** datatype instead of **np.int.** This can be seen in the following code example:

import numpy as np

myNumber = int(50)

print(myNumber)

**Output**

50

This code created a variable **myNumber** with a value of 50 using the built-in **int()** function. The code then printed the value of **myNumber** on the console.

Alternatively, we can use NumPy scalar types to create the variable. This is demonstrated in the following code example:

import numpy as np

myNumber = np.int_(50)

print(myNumber)

**Output**

50

This code also created a variable **myNumber** but here it used NumPy’s scalar type **np.int_()** and printed it on the console.

**Note:** Using Python’s built-in data type and NumPy scalar type instead of NumPy aliases can help avoid the **AttributeError: module ‘numpy’ has no attribute ‘int’ error.**

**Solution 2: Downgrade Numpy Version**

Another possible solution to fix this issue is to use an outdated NumPy version. If you are using an updated version of NumPy try to downgrade to the older version. As discussed above, the aliases were removed in version **1.24**, so if you downgrade to **1.23.X**, you will still be able to use them.

To downgrade the NumPy version run the code below:

pip install "numpy<1.24.0"

After installing it, you will able to use **numpy.int** and similar aliases without encountering any errors.

**Note:** Downgrading the Numpy Version is not recommended. Because the updated version offers advanced functionalities that are not available in the older versions. It is better to stay up-to-date with the latest version to ensure that your code runs efficiently and effectively.

**Reason 2: Misspelling or typo: **

The error may also occur if there is a typo or misspelling in the code. For instance, you might have written **numpy.in** instead of **numpy.int.**

**Solution:**

To Fix this issue, check your code carefully for any typos or misspellings in the **NumPy** attribute. Correct any errors you find and run your code again.

**Conclusion:**

The **AttributeError: module ‘numpy’ has no attribute ‘int’ **error occurs when attempting to use the int attribute of the **NumPy** module, which does not exist. To fix the error, avoid using the **numpy.int** attribute of **NumPy** and use the appropriate data types from the **NumPy** module(scalar type) or use Python built-in types for the removed **NumPy** aliases. When working with numerical data remember to always check the documentation of the libraries you are using and use the correct data types to avoid errors. Also, check the code carefully for any typos or spelling mistakes.

**Read More: **

Easiest Way to Connect Hive with Python:PyHive

How to Modify Python Global Variable inside a Function

TypeError: method() missing 1 required positional argument: ‘self

FIX – TypeError: list indices must be integers or slices not float

* Coding Spell | Python Journey* |

*About Us*- How To Find the Length of a List in Python - 16 October 2023
- Python Program to Swap Two Variables - 16 October 2023
- How to Check if a Variable is Null in Python - 14 October 2023