reshape with xyz ordering

Heli hemla21 at gmail.com
Wed Jul 27 09:01:11 EDT 2016


Thanks for your replies. Let me explain my problem a little bit more. I have the following data which i read from a file using numpy.loadtxt and then i sort it using np.lexsort:

x=f[:,0] # XColumn
y=f[:,1] # YColumn
z=f[:,2] # ZColumn
val=f[:,3] # Val Column
xcoord=np.sort(np.unique(f[:,0])) # XCoordinates
ycoord=np.sort(np.unique(f[:,1])) # YCoordinates
zcoord=np.sort(np.unique(f[:,2])) # ZCoordinates

ind = np.lexsort((val,z,y,x)) 
val_sorted=np.array(val[ind])

I know that the val column has data sorted first by x, then by y, then by z which means that column x changes slowest and column z changes fastest.

x,y,z, val 
0,0,0,val1 
0,0,1,val2 
0,0,2,val3 
....
0,0,zn,valn
...
xn,yn,zn,valfin

I want to reshape val_sorted in to a 3d numpy array of (nx,ny,nz). 

which of the following is the correct way and why?

#1
val_sorted_reshaped=val_sorted.reshape((xcoord.size,ycoord.size,zcoord.size))

#2
#val_sorted_reshaped=val_sorted.reshape((xcoord.size,ycoord.size,zcoord.size)).transpose()

#3
#val_sorted_reshaped=val_sorted.reshape((zcoord.size,ycoord.size,xcoord.size)) 

#4
#val_sorted_reshaped=val_sorted.reshape((zcoord.size,ycoord.size,xcoord.size)).transpose() 

Thanks, 





More information about the Python-list mailing list