import numpy as np def random_normal( size=(1,), trunc_val = 2.5 ): len = np.array(size).prod() result = np.empty ( (len,) , dtype=np.float32) for i in range (len): while True: x = np.random.normal() if x >= -trunc_val and x <= trunc_val: break result[i] = (x / trunc_val) return result.reshape ( size )