I have an array of values called E representing Energy values
E = np.arange(0.1, 101, 0.1)
And I want to create a group of arrays called a0, a1, a2, a3, being those coefficients that vary depending on the value of the energy, so I want to do something similar to this:
for item in E:
if item <= 1.28:
a3, a2, a1, a0 = 0, -8.6616, 13.879, -12.104
elif 1.28<item<10:
a3, a2, a1, a0 = -0.186, 0.428, 2.831, -8.76
elif item >=10:
a3, a2, a1, a0 = 0, -0.0365, 1.206, -4.76
This code does not return any mistake, but I do not know how to create lists or arrays with the same length as the E (energy array), with every array containing the values of the coefficients fo specific energy values, so I would really appreciate your help!
Best regards!
import numpy as np
constants = [[ 0, -8.6616, 13.879, -12.104 ],
[ 0.186, 0.428, 2.831, -8.76 ],
[ 0, -0.0365, 1.206, -4.76 ]]
constants = np.array(constants)
E = np.arange(0.1, 101, 0.1)
bins = np.digitize(E, [1.28, 10])
a0 = np.choose(bins, constants[:, 3])
a1 = np.choose(bins, constants[:, 2])
a2 = np.choose(bins, constants[:, 1])
a3 = np.choose(bins, constants[:, 0])