加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

data-structures – Python:从列表中填充下三角矩阵

发布时间:2020-12-20 13:35:40 所属栏目:Python 来源:网络整理
导读:我有csv格式的机票可用性的离散时间数据.这用于表示出发和到达时间窗口组合的票证可用性.说我的一天分为4个时段 – 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格式的机票可用性的离散时间数据.这用于表示出发和到达时间窗口组合的票证可用性.说我的一天分为4个时段 –

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

此数据用于表示此矩阵(请注意,某些组合在此处变为零,因为它们是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中完成.在某一天,我现在可以使用日期键检索可用性列表.

现在,我有两个问题:

>如何将数据转换为矩阵
类型数据结构.实质上,这涉及将列表转换为较低的列表
三角矩阵加对角元素.我试过用过
重塑numpy中的功能但是没有实现这个结果.
>一旦我转换了矩阵 – 我想以图形方式将可用性表示为主题网格 – 所有1都是绿色方块和0
作为红色方块.这在Python中是否可以实现?怎么样?

我假设在csv中读取字典然后将可用性元素存储在列表中是一种方法,因为它看起来相当简单.如果您觉得有更聪明的方法可以修改方法.

有什么想法吗?!?

解决方法

import numpy as np
import matplotlib.pyplot as plt

data = [1,1]
arr = np.zeros((4,4))
indices = np.tril_indices(4)
arr[indices] = data
print(arr)

# array([[ 1.,0.,0.],#        [ 1.,1.,1.]])


plt.imshow(arr,interpolation='nearest',cmap=plt.get_cmap('RdYlGn'))
plt.show()

地块

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读