【发布时间】:2015-11-18 14:39:04
【问题描述】:
我有一个数据矩阵(106 行和 57 列),其中所有数据都是['a','c','g','t'],每列也有 1 个字典。我需要做的是根据每列自己的字典应用转换。
我尝试了类似的方法,但结果不正确。
result = []
for x in range(data.shape[0]):
individual_map = np.empty(data.shape[1], dtype=int)
for y in range(data.shape[1]):
for key, val in mapping[y].items():
individual_map[data[x,y] == key] = val
result.append(individual_map)
谢谢。
编辑:示例数据只有 3 列,所以我只有 3 个字典。在实际案例中,有 57 列和 57 个字典。 样本数据:
data = [['a','c','g'],['t','g','c']]
dictionaries = [{'a':1,'c':2,'g':3,'t':4},{'a':3,'c':1,'g':2,'t':4},{'a':2,'c':3,'g':4,'t':1}]
result = [[1,1,4],[4,2,3]]
【问题讨论】:
-
你能展示你的数据和字典的样本吗?你得到了什么,你期望什么?
-
我想 data 不是一个列表,而是一个 numpy.array (否则它没有形状)
-
你是对的。我忘了提那个。但我没有收到任何类型的错误,结果是唯一的错误。
-
一般建议:考虑使用 pandas 来完成此类任务。 pandas 引入了数据框,它对于许多任务来说是非常有用的数据结构。我认为熊猫解决方案会在几个月过去后更好地理解......
标签: python numpy dictionary