Я понимаю только 10% кода, который вы показываете, но я подозреваю, что знаю, что не так с вашим кодом.
На каждой итерации последней l oop вы теряете значение colors['UMINV']
с этой строкой:
colors['UMINV'] = np.array([])
Когда вы позже добавите значение к этому пустому массиву, оно будет единственным. На следующей итерации вы повторно инициализируете пустой массив перед добавлением еще одного отдельного значения.
Я подозреваю, что вы хотите, чтобы строка выше выполнялась только один раз (или, возможно, один раз за запуск внешнего l oop, вашего кода). довольно запутанно, поэтому я только догадываюсь о ваших намерениях). Это не сложно исправить, просто переместите его вверх по файлу, либо полностью вверху, чуть ниже определения словаря, или чуть выше строки for igood in range(...)
.
Я также не уверен, что использовать этот словарь, на самом деле, если вы не используете более одного ключа в нем. Просто используйте простую переменную, если вам нужен только один массив!