An eigenvector is just a direction the matrix can't push you off of. That's it. Every other definition is a consequence of this one, geometrical sentence.
The picture, before the algebra
Take any 2×2 transformation. Most input vectors get rotated and stretched — they come out pointing somewhere new. But there are usually one or two directions that just get stretched. Those are your eigenvectors. The stretch factor is the eigenvalue.
import numpy as np
A = np.array([[2, 1],
[1, 3]])
vals, vecs = np.linalg.eig(A)
# vals → array([1.38, 3.62])
# vecs → columns are the eigenvectorsWhy we care
Because if you can find these special directions, you can rewrite the matrix as a stretch along them. That makes powers of the matrix cheap, makes differential equations solvable, makes PCA work. Eigenvectors are how linear algebra pays rent.