'evaluate function f from f_str and tensros
f_str: name of varialbe in the form of x0 - xn
tensors: numpy tensor vals'

@staticmethod
def _numpy_call(f_str, tensors):

    f_str = f_str.replace('be', 'np')
    f_str = f_str.replace('np.sig', 'CustomFunc.sig')
    f_str = f_str.replace('np.sig2', 'CustomFunc.sig2')
    f_str = f_str.replace('np.tanh2', 'CustomFunc.tanh2')
    f_str = f_str.replace('np.argmax', 'CustomFunc.argmax')
    f_str = f_str.replace('np.argmin', 'CustomFunc.argmin')
    f_str = f_str.replace('axis=0', 'axis=0,    keepdims=True')
    f_str = f_str.replace('axis=1', 'axis=1,    keepdims=True')
    count = 0
    for tensor in tensors:
        exec ('x%s    =    tensor' % count) in globals(), locals()
        count += 1
    result = None
    result = eval(f_str)
    return result
