Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的多维数组切片_Python_Multidimensional Array - Fatal编程技术网

python中的多维数组切片

python中的多维数组切片,python,multidimensional-array,Python,Multidimensional Array,我试图删除2d数组中的特定索引,如下所示 a = [[1, *2, 3] [4, 5, 6*] [7*, 8, 9]] 我想删除3x3数组的特定索引(带*),并使其成为2x3数组 像 怎么做 更新: 删除()时出错: 使用pop() 使用del >>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] >>> del a[0][1] >>> del a[1][2] >>> de

我试图删除2d数组中的特定索引,如下所示

a = [[1, *2, 3]
     [4, 5, 6*]
     [7*, 8, 9]]
我想删除3x3数组的特定索引(带*),并使其成为2x3数组

怎么做

更新:

删除()时出错:

使用
pop()

使用
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()


如果我们使用列表列表

...
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
操作到位,无需返回非多维数组的修改列表。这是一个数组数组。它不是一个2D数组吗?技术上不是,因为这是Pyton而不是C/C++。这是一个
列表
。所以你可以称之为列表列表或多维列表。谢谢!如果是不支持pop的numpy数组呢?你可以使用
numpy.delete()
你能在这个例子中演示如何使用numpy.delete()吗?这给了我一个错误<代码>值错误:无法将输入数组从形状(2)广播到形状(3)。更新的问题。是的,因为numpy 2d数组必须具有一致的维度。在你的例子中是3,3或2,3。您必须在更改每一行时创建一个新数组。
>>> 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]])
...
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])