|
|
|
@ -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) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|