Further look at this. Remember the unzip command (zip(*zipholder)) is expecting to parse out to x number of variables where x is the width of your array. For example, if you have the following in zipholder [(1,2,3,4),(4,5,6,7),(7,8,9,10)] and you ran zip(*zipholder), it would be looking to copy the three sub-arrays into four variables
var1, var2, var3, var4 = zip(*zipholder)
This code would have var1 = [1,4,7], var2 = [2,5,8], var3 = [3,6,9], and var4 = [4,7,10]
Not sure if this helps any. But this is where I would look in your code for why the columns and rows are transposed.
Kurt