I want to transfer my BTC from one address to another (both are mine), how do I avoid paying the transaction fee?
You can move your private key from one wallet into a different wallet by exporting and importing it, but what you want is to move funds from two different private keys. Even if you own both private keys, as far as I know this is impossible outside of a transaction (with it's required fee), otherwise it would break bitcoin, as people would be able to move funds around without paying the miners.
It is impossible to transfer BTC from one address to another without paying fees, that too now the fees being too high even if you need to transfer small amounts you need to pay high fees larger than amount you are transferring. If you have two of the accounts in coinbase exchange you can do it literally for free by just inserting the mail id. If there was no fees, people would just spam bitcoin transaction

I think lightning network will help us out by minimizing the fees to large extent and making it free of cost for paying only once in the beginning and in the end while withdrawing funds by setting up a payment channel. Hope LN strikes soon.

Even with LN you will still need to pay a fee to fill the channel with coins, and the LN fee which is minimal. Actually I learned that it can be negative and you can make some money while sending an LN transaction.
Theoretically, there IS a way to avoid paying fees. This is achieved simply by not including a miner's fee in your transaction. You'd be extremely unlikely to ever get it confirmed though, unless you intervene by somehow getting it submitted to a miner to include it. Deliberately sending low or zero fees is not good behaviour though. Just learn to pay what you need to.
I wonder when was the last time that a 0 fee transaction was ever mined successfully? This would be an interesting stat to know. I guess after 2012 it was just impossible, probably earlier.