РЕДАКТИРОВАТЬ: Извините, позвольте мне добавить некоторые разъяснения. У меня есть python код:
E1 = [1,2,3,4]
E2 = [2,3,4,5]
#E3 = [...] and so on
arraylist = []
for i in range(1,acq+1):
dat = "E{}".format(i)
arraylist.append(dat)
E_total = np.add.reduce([arraylist])
Я хочу добавить ранее определенные массивы E1, E2, E3 ... в массив, чтобы print (arraylist) возвращал [E1, E2, E3, ....]
Прямо сейчас, когда я печатаю список массивов, он выглядит как ["E1", "E2", "E3"]. Когда я пытаюсь суммировать массивы для решения E_total, я получаю ошибку, потому что E1 не вызывает мой массив E1 = [1,2,3,4], а вызывает строку «E1», которая не имеет определения.
Я хочу иметь arraylist = [E1, E2, E3, ...] и не добавлять строки "E1" "E2" ...
Когда я печатаю (arraylist [0]), он возвращает E1, я хотел бы, чтобы он возвращал [1,2,3,4], поскольку это то, что E1 определено как.
Могу ли я сделать это без словаря? Я не хочу определять "E1": E1, "E2": E2 и так далее. Это кажется очень громоздким и неосуществимым для многих E.
обновление Набор текста вручную:
arraylist = [E1,E2,E3,...]
sums = np.add.reduce([arraylist])
Работает! Я думаю, что проблема заключается в том, что я добавляю строку «E1» к массиву с помощью forl oop, а не E1. Как я могу использовать .append так, чтобы я мог добавить E1 вместо строки "E1"
Вот как я получаю массивы E_n:
A1 = glob.glob('/media...)
A1.sort()
B1 =[]
for elem in A1:
B1.append(float((elem.split('_'))[3]))
C1 = []
for elem in A1:
C1.append(np.sum(np.genfromtxt(elem)))
E1 = np.gradient(C1)
Любая помощь приветствуется.