I'm not sure from your question if you are trying to calculate the inverse using floating point numbers with 1000 bits of precision, or if you want to use fractions.
For the former, I would try the combination of mpmath and gmpy. The following example creates a random 3x3 matrix with 100 bits of precision and calculates the inverse.
>>> from mpmath import *
>>> mp.prec = 100
>>> a = randmatrix(3)
>>> a**-1
matrix(
[['-2.9551532644739824344170194538', '-2.30592481828272627130234272', '4.618043964228917637573009707'],
['12.025269724235234315848646394', '3.3570351961866008157001332066', '-10.59068013761452569858474265'],
['-6.672524995207041946321450867', '-0.57061969261482431665347164675', '5.508560423258977568243759022']])
>>> a * a**-1
matrix(
[['1.0', '-3.8920288101260775500720697474e-34', '5.467369412738327810686299975e-34'],
['-2.0267823641769153744296258652e-33', '1.0', '-1.4939276515262026082238333732e-33'],
['-2.1979577599335336964264104571e-33', '-6.0264087812469052430270713117e-34', '1.0']])
>>>
Note: mpmath 0.17 will only work with gmpy. To use gmpy2 (the next major release), you will need to use the source repository of mpmath.
If you want an exact rational inverse, you can try sympy. I would be concerned that the size of the fractions will increase and it will be much slower than the floating point inverse. sympy uses mpmath and gmpy behind the scenes.