Python (IPython/Jupyter) and R's interactive mode is really indispensable for this. Without restarting/re-initialize every variables and modules from beginning, you can run code snippet, run, edit part of code, run, add some code, plot something, run, repeat...
Some adopted R as well but it just didn't take off the same way even though it really was/is a better fit for some use cases.
If the question is about now, Python has lots of libraries to help in addition to the previously mentioned reasons. However Java still has better library support for NLP overall such as OpenNLP, Stanford CoreNLP, etc. NLP in Python is catching up though thanks to gensim, spacy, etc.
1. It's easier to get started than Java, Go, etc.
2. It's faster to write/prototype. (The IPython REPL and Jupyter notebooks are awesome.)
3. The Python community is also very open source friendly and has significant momentum in third party packages like pandas, numpy, scipy, etc.
Check out some talks from past PyCons and you will see a very strong scientific presence more so than the other languages you mentioned.
If you are developing ML/DS models, a REPL environment comes very handy, there is IPython.
You'll find a large chunk of your time is spent on gathering, cleaning data, which Python really excels.
Make a website that integrates or visualize the data with Python? Sure
You can not find a second language this versatile and has a well supported ecosystem.
Data scientists aren't interested in learning industrial programming languages (C#, Java and maybe Go), they just want to do their job, and it doesn't require industrial language.
I can use our production code for heavy analytics or modeling, and just as easily take the data to my laptop Python interpreter in memory.
For example, I was trying to understand a batch normalization function defined as
def batchnorm_forward(x, gamma, beta, eps):
I can’t tell if gamma/beta are scalar or vector?