can you suggest best method for background / ambient noise removal from cough audio and keep only cough signal
First let's see some data: typical cough data for someone with pneumonia:



image source. This source paper also contains more information on processing cough data.



The simplest way I can think of would be to analyse and extract the average/base background noise of an many samples as you can, then simply subtract the background noise from the entire sound wave. This background noise is essentially the area outside of the start and end lines indicated on the image above. 

Outline of steps will need to:


define the start and end of the cough itself (as per the image)
measure the average magnitude of the background: e.g. np.mean(np.abs(background))
subtract the average background noise from the sound clip


If you can plot the data again, you should notice that the lines outside of start and end are almost flat (but not exactly flat, we only subtracted the average background noise)

Links:


Have a look at this answer, which goes through similar steps in more detail
Here is a great list of libraries you can use to work with sound data in Python
Audacity (software package) has a lot of tools and is scriptable, using Python