Цикл по столбцам и применение вашей функции к каждой строке должно работать:
for col in range(a.shape[1]):
a[col] = lintransform(listofintervals[col], a[col])
Вывод:
a
array([[-5.80231737, -3.1056331 , -1.3878622 , 3.2891958 , -1.35495844],
[-7.93085499, 18.46079707, 13.81923528, -3.18486045, -0.31541526],
[ 1.53477244, 2.61705202, -2.14505552, 0.14751953, 4.70029497],
...,
[ 1.13798389, -0.6765344 , -0.1364982 , -1.0443724 , 0.06717867],
[-1.78251012, 0.11171333, 1.28247762, 0.52285423, 0.16057854],
[-0.59513499, -0.76866946, -0.37233491, -1.08463643, -0.45660967]])