|  |  |  | @ -10,9 +10,10 @@ Various tools for arrays (mainly, numpy array objects). | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | """ | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import numpy | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | def array_indices_cond_1d(arr, cond): | 
			
		
	
		
			
				
					|  |  |  |  |   """Get the odered list of array indices whose corresponding elements satisfy | 
			
		
	
		
			
				
					|  |  |  |  |   """Get the ordered list of array indices whose corresponding elements satisfy | 
			
		
	
		
			
				
					|  |  |  |  |   a given condition. | 
			
		
	
		
			
				
					|  |  |  |  |   Useful for conditional assignment or evaluation. | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -36,5 +37,27 @@ def array_indices_cond_1d(arr, cond): | 
			
		
	
		
			
				
					|  |  |  |  |   return numpy.array(xrange(len(arr)))[ cond ] | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | def array_hstack(arrays): | 
			
		
	
		
			
				
					|  |  |  |  |   """Creates a 2D array by horizontally stacking many arrays together | 
			
		
	
		
			
				
					|  |  |  |  |   (along the array's second dimension). | 
			
		
	
		
			
				
					|  |  |  |  |   Each of the input arrays can be a 1D or 2D array. | 
			
		
	
		
			
				
					|  |  |  |  |   This function is similar to numpy.hstack. | 
			
		
	
		
			
				
					|  |  |  |  |   """ | 
			
		
	
		
			
				
					|  |  |  |  |   from numpy import asarray, hstack | 
			
		
	
		
			
				
					|  |  |  |  |   stk = [] | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   for a1 in arrays: | 
			
		
	
		
			
				
					|  |  |  |  |     a = asarray(a1) | 
			
		
	
		
			
				
					|  |  |  |  |     dim = len(a.shape) | 
			
		
	
		
			
				
					|  |  |  |  |     if dim == 1: | 
			
		
	
		
			
				
					|  |  |  |  |       a = a.reshape((len(a),1)) | 
			
		
	
		
			
				
					|  |  |  |  |     elif dim == 2: | 
			
		
	
		
			
				
					|  |  |  |  |       pass | 
			
		
	
		
			
				
					|  |  |  |  |     else: | 
			
		
	
		
			
				
					|  |  |  |  |       raise ValueError, "Won't take 3D, 4D, ... arrays" | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     stk.append(a) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   return hstack(stk) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |