Not exactly. Python is multi-paradigmatic. One can write Python program without using OOP if we do not count programming with objects. Compared to languages like Java or C#, no one forces programmers to insert the functionality into classes.
The type inference is not exactly related to dynamic typing. On the contrary, types are inferred in statically typed languages to reduce the boilerplate and get closer to dynamically typed languages. The CPython interpreter doesn't infer types. Under the hood, he is examining objects in runtime. If the requested operation is not valid for an examined type, the interpreter raises an exception.
Statically typed languages require types to be known before they enter runtime which is not the case with Python and dynamically typed languages in general. Python uses type inference for optional static typing, like in Mypy or similar.
On the other hand, compared to languages like JavaScript, Python is strongly typed which is not the case with JavaScript.
Finally, Python is a specification of a programming language, so it can be interpreted or compiled. CPython (the most common runtime) as its reference implementation has an interpreter while PyPy is compiled to bytecode if I am not mistaken.