Basically you do not know *where* Bob is in the array? I had a similar challenge when I attempted modelling customizable spacecraft. Instead of creating an object for every module, with its own variables, I stored everything from stats, sprite ID etc. to description in an array.
If you have the name in row 0 (y=0) of your array you can just use array.indexof("bob") as shown in the capx:
Some explanation on the capx. When you click on the button it retrieves a random name from y=0 of the party array. It stores that random name as a text string in the buttons variable. Then the same name, as text, is passed to the ReturnPartyMemberName function as a parameter, stored as a text variable "name" (the function.param(x) expression can in some cases not be retrieved within a function event after some sub-event or actions, so it is best to store the parameters in local variables located in the fun just in case) and array.indexof(name) will retrieve the x index of the name.
https://www.dropbox.com/s/rrrn0j5s4hs5l ... .capx?dl=1
If you have names stored in another row, or worse, if you have names all stored in column 0 (x=0), or any other column, with each row a different party member, you need to do a custom search function for retrieving the index. It is a bit more difficult but not impossible.