Родился 15 апреля 1919 года в деревне Басурманово Емельяновского района Московской области (в 1935 году район был передан в Тверскую область, ныне это деревня Ярнево), в семье крестьянина. Русский.
Образование неполное среднее. До 1937 года работал в колхозе, затем переехал в Москву. Работал слесарем на автозаводе (ныне имени И. А. Лихачёва).
В 1939 году был призван в Красную Армию. С началом Великой Отечественной войны на фронте. С лета 1942 года сражался на Воронежском и 1-м Украинском фронтах. Особо отличился в боях при форсировании Днепра. В сентябре 1943 года части 136-й стрелковой дивизии (Воронежский фронт) вышли к Днепру прямо в районе Киева. После тщательной подготовки командование решило форсировать реку несколько южнее Киева в районе Казачьего острова. Красноармеец Андреев смело выдвинулся к пулемётной точке противника, мешавшей переправе через Днепр, и уничтожил её. В бою на острове заменил раненого командира взвода. Под его руководством бойцы ползком приблизились к позициям противника, забросали их гранатами и предприняли стремительную атаку. Огневые точки противника были уничтожены, фашисты рассеяны. Взвод выполнил поставленную задачу и закрепил плацдарм до подхода основных сил.
В 1944 году Андреев Н. П. окончил курсы младших лейтенантов, в 1945 году — курсы усовершенствования офицерского состава. Продолжал службу в армии до августа 1946 года. После увольнения в запас вернулся на родину.
Работал в Калинине на комбинате «Искож». В 1951—1984 годах снова служил в Советской Армии. Уволен в запас в звании лейтенанта. Работал на стройках в Донбассе. В 1966 году вступил в ряды КПСС.
Последние годы жил и работал в городе Москве. Умер 28 августа 1979 года. Похоронен в Москве на Люблинском кладбище (участок № 56).