Вы можете компенсировать весь ваш массив самым низким значением (слева больше) массива. То, что вы получаете, может не быть действительно «нормальным распределением», но в рамках вашей работы, касающейся конечного массива, вы можете убедиться, что значения положительны и соответствуют кривой колокола.
>>> mu,sigma = (0,1.0)
>>> s = np.random.normal(mu, 1.0, 100)
>>> s
array([-0.58017653, 0.50991809, -1.13431539, -2.34436721, -1.20175652,
0.56225648, 0.66032708, -0.98493441, 2.72538462, -1.28928887])
>>> np.min(s)
-2.3443672118476226
>>> abs(np.min(s))
2.3443672118476226
>>> np.add(s,abs(np.min(s)))
array([ 1.76419069, 2.85428531, 1.21005182, 0. , 1.14261069,
2.90662369, 3.00469429, 1.3594328 , 5.06975183, 1.05507835])