The wikipedia page on rotation matrices shows 1's on the diagonal.
I believe scipy replaces the 1's on the diagonal with
w^2+x^2+y^2+x^2
That makes them the same for a unit quaternion.
For non-unit quaternions, scipy's matrix acts as both a rotation and a scaling.
For example:
if you take the quaternion = 2 +0i+0j+0k.
The rotation matrix will be the identity matrix (with only a w term there is no rotation),
Scipy's matrix will be 2*identity, because in also includes the scaling.