Does this depend on my machine's available RAM?
To an extent, yes. You cannot have an object that is significantly larger than your memory. However:
Could I keep an array like this or larger in memory?
32bit processes can be 2GB in size maximum (3GB with special exceptions). But even on 64bit systems using a 64bit process, you cannot exceed the size of 2 GB for a single .NET object. So you can have two large arrays of 1.5 GB each, but you could not have a single one of 3 GB. And yours seems to be way above that size.
As commenters pointed out, there is a way around this limit with later editions of .NET:
Put this in your App.config file:
<configuration>
<runtime>
<gcAllowVeryLargeObjects enabled="true" />
</runtime>
</configuration>