【发布时间】:2013-12-14 20:30:10
【问题描述】:
我有一个由行列表表示的数据网格:
tableData = [
[-27.37, 36.61 , 8.90 , -11.20, -36.03, -42.34],
[16.83 , -33.45, -5.15 , 12.90 , -48.60, -8.70],
[-19.73, 2.64 , 7.21 , 24.16 , 18.38 , 20.47],
[-31.05, 15.07 , 42.69 , -32.13, -36.02, 42.31],
[15.18 , 30.54 , -47.31, 48.38 , 31.60 , -1.98]
]
现在,我想插入包含 None 值的两列,例如在列 2&3 和 4&5 之间,这样我就有了以下内容:
tableDataWithNones = [
[-27.37, 36.61 , None, 8.90 , -11.20, None, -36.03, -42.34],
[16.83 , -33.45, None, -5.15 , 12.90 , None, -48.60, -8.70],
[-19.73, 2.64 , None, 7.21 , 24.16 , None, 18.38 , 20.47],
[-31.05, 15.07 , None, 42.69 , -32.13, None, -36.02, 42.31],
[15.18 , 30.54 , None, -47.31, 48.38 , None, 31.60 , -1.98]
]
我可以像这样使用双 for 循环来做到这一点:
spacerPositions = [2, 4]
for i in tableData:
for j in reversed(spacerPositions):
i.insert(j, None)
但这感觉不像是pythonic的方式。
我在想我可以使用 numpy 转置数据,以便列可以变成行,然后我可以使用 insert 将行 Nones 放入,然后将数据转回。但是 insert 不能为索引取多个值,所以我仍然必须使用 for 循环。
有什么想法可以更好地做到这一点吗?
【问题讨论】:
标签: python numpy matrix data-manipulation