py> mtx
array([[ 0.88302225, 0.11697778, 0.45451948, 5. ],
[ 0.11697778, 0.88302225, -0.45451948, 10. ],
[ -0.45451948, 0.45451948, 0.76604444, 20. ],
[ 0. , 0. , 0. , 1. ]])
My usual way of transforming a set of coordinates with a 4x4 matrix is to use numpy:
py> xyz_1
array([[ 5., 10., 15., 1.],
[ 20., 15., 10., 1.]])
py> numpy.inner(xyz_1, mtx)
array([[ 17.40268126, 12.59731919, 33.76326397, 1. ],
[ 28.9603065 , 21.03969455, 25.38784698, 1. ]])