python - 根据字典值和列表创建新矩阵
问题描述
下面是一个简化的例子:
val = [10,23,45,31,78,43,1,67,82]
indx = [1,4,5,8]
indx2 = [3,6,7]
indx3 = [0,2]
samp = {}
samp[0] = indx
samp[1] = indx2
samp[2] = indx3
假设我有一个字典(samp),它有两个组:第 0 组和第 1 组。字典有向量 val 中值的索引。
我想通过创建一个 8 X 2 矩阵来根据字典中的给定组提取 val 中的所有值,其中我有组和两列中的值按索引顺序排列,所以它看起来像这样:
val group
10 2
23 0
45 2
31 0
87 0
43 1
1 1
67 0
82 1
我该怎么做呢?
解决方案
得到这个的一种方法
[(j, next(k for k,v in samp.items() if i in v)) for i,j in enumerate(val)]
输出:
[(10, 2),
(23, 0),
(45, 2),
(31, 1),
(78, 0),
(43, 0),
(1, 1),
(67, 1),
(82, 0)]
推荐阅读
- java - 没有发送短信,即使 toast 显示它已发送
- python - 有什么解决方案可以获取加载时间吗?
- firebase - 匿名身份验证用户的这个 Firebase/Firestore 安全规则是否安全?
- python - 使用日期时间列写入和读取行时获取不同的时区?
- r - R中特定版本的数据透视表(无聚合)
- ansible - ansible 根据 when 条件限制角色执行
- javascript - 正则表达式在 NodeJS 中不起作用?
- java - 在 ElasticSearch 中使用 Java API 时从 JSON DSL 构造 QueryBuilder?
- sql - 添加外键约束失败2
- kotlin-multiplatform - Kotlin Multiplatform Cocoapods 集成问题