Can you explain why you think that it should not be identity?
If it’s because you put it under a transform, then it’s normal, because the volume itself still has identity directions. You can either set the same transform as parent of the other volume, or you can harden the transform, which will “burn” the matrix in the volume directions and then you can use it the way you want. However, we typically simply use the transform hierarchy and the convenience functions to get the transform between objects when necessary.
Values will be overwritten anyway by calling GetIJKToRASDirections, so in this specific example, either np.zeros or np.eye works.
However, since a null-matrix is not a valid direction matrix, it is not good practice to store it in a variable called “direction”, even temporarily. np.eye creates an identity matrix, which is what you want as a default direction matrix; and its syntax is a bit simpler than np.zeros, too.