我正在尝试删除二维数组中的特定索引,如下所示。
a = [[1, *2, 3]
[4, 5, 6*]
[7*, 8, 9]]
我想删除3x3数组的特定索引(带*)并使其成为2x3数组。
像
a = [[1, 3]
[4, 5]
[8, 9]]
怎么做?
更新
删除()时出错:
答案 0 :(得分:1)
使用pop()
>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> a[0].pop(1)
>>> a[1].pop(2)
>>> a[2].pop(0)
>>> a
[[1, 3], [4, 5], [8, 9]]
使用del
>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> del a[0][1]
>>> del a[1][2]
>>> del a[2][0]
>>> a
[[1, 3], [4, 5], [8, 9]]
使用numpy.delete()
>>> a = numpy.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> b = numpy.zeros((3, 2))
>>> b[0] = numpy.delete(a[0], 1)
>>> b[1] = numpy.delete(a[1], 2)
>>> b[2] = numpy.delete(a[2], 0)
>>> b
array([[1, 3], [4, 5], [8, 9]])
答案 1 :(得分:0)
如果我们使用列表清单
...
delenda = [1,2,0]
for i, row in enumerate(a):
row.pop(delenda[i])
也作为一种功能
def multipop(list_of_lists_2D, delenda):
for i, row in enumerate(list_of_lists_2D):
row.pop(delenda[i])
multipop(a,[1,2,0])
请注意pop
运行到位,无需返回修改后的列表