我正在尝试分析生物学数据,并且具有如下数组列表:
[[['ENSMUSG00000000001' '-0.072141867' '0.153569137']
['ENSMUSG00000000028' '-0.031985346' '0.537383098']
['ENSMUSG00000000037' '0.046097573' '0.727492292']]
[['ENSMUSG00000000001' '0.422529239' '4.86E-24']
['ENSMUSG00000000028' '-0.036262661' '0.393367015']
['ENSMUSG00000000037' '0.070899297' '0.427056034']]
[['ENSMUSG00000000001' '0.117877802' '0.000480518']
['ENSMUSG00000000028' '0.122150713' '0.000368726']
['ENSMUSG00000000037' '0.009156006' '0.912776746']
['ENSMUSG00000110411' '-1.67014277' '7.92E-05']
['ENSMUSG00000110415' '-0.103612996' '0.606599177']
['ENSMUSG00000110424' '0.357829407' '0.053448692']]]
并且我想删除一些最小的列表,例如要删除的索引列表为
[(0,1),(1,2),(2,3)]
我想得到:
[[['ENSMUSG00000000001' '-0.072141867' '0.153569137']
['ENSMUSG00000000037' '0.046097573' '0.727492292']]
[['ENSMUSG00000000001' '0.422529239' '4.86E-24']
['ENSMUSG00000000028' '-0.036262661' '0.393367015']]
[['ENSMUSG00000000001' '0.117877802' '0.000480518']
['ENSMUSG00000000028' '0.122150713' '0.000368726']
['ENSMUSG00000000037' '0.009156006' '0.912776746']
['ENSMUSG00000110415' '-0.103612996' '0.606599177']
['ENSMUSG00000110424' '0.357829407' '0.053448692']]]
所以我尝试了几种有或没有numpy的解决方案,但都没有用
我专注的想法是这样的(其中tot是我的完整数组,而delindex是我想要摆脱的元素的位置)
for e in delindex[::-1]:
tot=np.delete(tot,e[1],e[0])
但是我总是会收到错误消息:
IndexError: index 12263 is out of bounds for axis 2 with size 3
您注意到,我的数组很大,因此我无法在其上使用迭代循环
答案 0 :(得分:0)
使用del
:
d = [(0,1),(1,2),(2,3)]
for x, y in d:
del lst[x][y]
其中lst
是列表的原始列表。