The PNM format is just an abstraction of the PBM, PGM, and PPM formats. I.e. the name "PNM" refers collectively to PBM, PGM, and PPM.
The name "PNM" is an acronym derived from "Portable Any Map." This derivation makes more sense if you consider it in the context of the other Netpbm format names: PBM, PGM, and PPM.
The more general term "Netpbm format" refers to the PNM formats plus PAM.
PNM is principally used with Netpbm.
Note that besides being names of formats, PBM, PGM, PPM, and PNM are also classes of programs. A PNM program can take PBM, PGM, or PPM input. That's nothing special -- a PPM program can too. But a PNM program can often produce multiple output formats as well, and a PNM program can see the difference between PBM, PGM, and PPM input and respond to each differently whereas a PPM program sees everything as if it were PPM. This is discussed more in the description of the netpbm programs.
"pnm" also appears in the names of the most general Netpbm library routines, some of which aren't even related to the PNM format.