Bytecode only includes the original contract code. All the subsequent data is in transactions and I assume you mean the size of an array which is modified after contract deployment.
So I already gave you a hint. The array is modified only in the constructor (upon deployment) and in transactions. Therefore you "only" need to look at the constructor code and go through the transactions. This is basically what nodes do already (at least the more full ones) - they execute all transactions to get the new state.
Also as the current state is always known you should be able to find out in some way how many entries there are in an array but I'm not sure how this could be done.
None of the aforementioned ways are easy (at least if done by hand) - probably some reverse-engineering is required.