У меня есть данные о доступности авиабилетов в формате дискретного времени в формате csv
. Это используется для представления доступности билетов для комбинации окон вылета и времени прибытия. Скажем, мой день делится на 4 периода времени -Python: заполнить матрицу нижнего треугольника из списка
12:01 AM to 6:00 AM,
6:01 AM to 12:00 PM,
12:01 PM to 6:00 PM,
6:01 PM to 12:00 AM
1 означает, что есть билеты доступны для этой комбинации вылета и прилета, 0 в противном случае. В этом примере, позволяет говорить о том, что билет доступен для всех комбинаций вылета-прилета, файл CSV будет иметь следующие данные:
1,1,1,1,1,1,1,1,1,1
Эти данные используются для представления этой матрицы (пожалуйста, обратите внимание, что некоторые из комбинаций обращается в нуль здесь, поскольку они нелогичные комбинации времени для 24-часового периода):
Departure time period
12:01 AM to 6:00 AM | 6:01 AM to 12:00 PM | 12:01 PM to 6:00 PM | 6:01 PM to 12:00 AM|
Arrival time period ------------------- | ---------------------|---------------------|---------------------|
12:01 AM to 6:00 AM 1 | 0| 0| 0|
6:01 AM to 12:00 PM 1 | 1| 0| 0|
12:01 PM to 6:00 PM 1 | 1| 1| 0|
6:01 PM to 12:00 AM 1 | 1| 1| 1|
файл csv
имеет эти данные для нескольких дней. Я прочитал эти данные как словарь с датой, являющейся ключом и комбинациями доступности в качестве списка. Обработка данных выполняется в Python 2.7
. В определенный день я могу получить список доступности с помощью ключа даты.
Теперь у меня есть 2 вопроса:
Как я могу преобразовать данные в структуру типа данных матрицы . По существу это включает преобразование списка в нижнюю треугольную матрицу плюс диагональные элементы. Я попытался использовать функцию изменения формы в
numpy
, но это не дает результата.Как только я преобразую матрицу - я хочу наглядно представить доступность в виде тематической сетки - со всеми 1s в виде зеленых квадратов и 0s в виде красных квадратов. Возможно ли это на Python? Как?
Я предположил, что чтение в csv
в качестве словаря, а затем хранить элементы доступности в списке является путем, как это казалось довольно простым. Измените подход, если вы чувствуете, что есть более умные способы сделать это.
Любые мысли людей?!?