Assuming that a is 2D, a[0] will return the first row. You can then index into that by column, which is what you're doing with a[0][0]. Both options return the upper left element. The single indexer call (aka, [0,0]) is likely more performant, if that's all you're doing, but it can be convenient to iterate through the rows and work with them individually.
Given a numpy array 'a', a[0,0] and a[0][0] return the same result, so how do I choose them and what is the difference between them?
Difference between a[0,0] and a[0][0] in numpy array?