The 28-year-old was left out of Liverpool's pre-season match against AC Milan on Saturday because of speculation over his future and has now joined Bayern in a deal worth 65.5m pounds.
Diaz leaves Liverpool after helping the club win the Premier League title last season and says he departs the Reds with a "feeling of a duty fulfilled" having won four pieces of major silverware during his time in England.
He added that his exit would have been the "perfect goodbye" if not for the death of teammate Diogo Jota earlier this month.
Diaz wrote on social media: "I arrived with all the dreams in the world, and I am leaving proud of everything we achieved together.
"I have met incredible people, fabulous colleagues, coaches who helped me a lot, and extraordinary fans. Liverpool is, indeed, a special team, and I will keep everyone in my heart.
"It's good to be leaving with the feeling of a duty fulfilled, and, most of all, to be leaving a champion. It would have been the perfect goodbye if we hadn't lost one of ours in such a tragic way.
"I carry everyone with me in my heart, but one of them in particular: Diogo. I will never forget him. We will never forget him. Thank you for everything."
Diaz joined Liverpool from Porto in January 2022, scoring 41 goals in 148 appearances during his time at Anfield and helped the club win the Premier League, FA Cup and League Cup twice.
He has made 64 international appearances for Colombia and scored 19 goals for his country.
On joining Bayern, Diaz added: "I'm very happy, it means a lot to me to be part of FC Bayern - they're one of the biggest clubs in the world.
"I want to help my new team with my way of playing football and my character. My goal is to win every possible title, and that's what we'll work for every day as a team."
Liverpool remain interested in Newcastle striker Alexander Isak, who did not travel on the Magpies' pre-season tour to Asia and is exploring options to leave the club.