Can an alphabet be $\{ε\}$ or $\mathbb{N}$?
An alphabet can be any finite set of symbols. $\{\epsilon\}$&nbsp;is a finite set of symbols so you can certainly use it as an alphabet.  The strings over this alphabet are the empty string, $\epsilon$, $\epsilon\epsilon$, $\epsilon\epsilon\epsilon$, etc. Note that, in this context, we need some other notation for the empty string (some people use $\lambda$ for that anyway) and, in this context, $\epsilon$&nbsp;does not denote the empty string: it denotes the one-character string whose only character is an epsilon. Likewise, $\epsilon\epsilon$ denotes the two-character string consisting of two epsilons.

Because it's confusing, we normally try to avoid having $\epsilon$ as a character in the alphabet. However, in some circumstances, it is a natural thing to do:


If you want to recognize languages of Greek words, it would be unnatural to use any alphabet other than the Greek one, $\{\alpha, \beta, \dots, \omega\}$ and that includes&nbsp;$\epsilon$.
If you want to write out a grammar for the strings that constitute valid regular expressions, e.g., over alphabet $\{0,1\}$, then you're going to need to use symbols $\{0,1,(,),+, {}^*, \epsilon,\emptyset\}$ (and life could get very confusing indeed).


So, if you want to stay sane, avoid having symbols such as $\epsilon$ in your alphabet as far as possible. But, if you can't avoid it, you just have to do it and use some other notation for the empty string.

$\mathbb{N}$ is not finite so it's normally not allowed as an alphabet, especially in the sort of formal language theory that's taught to undergraduates. It certainly makes sense to consider infinite alphabets in other contexts but, for most purposes, we stick to finite alphabets.