Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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_Matrix - Fatal编程技术网

在python中初始化矩阵的最有效方法

在python中初始化矩阵的最有效方法,python,matrix,Python,Matrix,在Python中,不使用numpy初始化矩阵最有效的方法是什么。例如,我想创建: matrix = [ [[0,0],[0,0],[0,0]] [[0,0],[0,0],[0,0]] [[0,0],[0,0],[0,0]] ] 我使用以下方法创建了一个: dpcols = [[0,0]] * len(matrix[0]) matrix = [dpcols] * len(matrix) 但是有了这个,如果我改变

在Python中,不使用numpy初始化矩阵最有效的方法是什么。例如,我想创建:

matrix = [
           [[0,0],[0,0],[0,0]]
           [[0,0],[0,0],[0,0]]
           [[0,0],[0,0],[0,0]]
         ]
我使用以下方法创建了一个:

dpcols = [[0,0]] * len(matrix[0])
matrix = [dpcols] * len(matrix)
但是有了这个,如果我改变

matrix[1][1] = [1,1]

然后索引[0][1]、[1][1]和[2][1]都被更改为[1,1],因为它们都链接在一起。

我认为这不如numpy有效,因为它是双for循环,但很容易编写:

>>> rows,cols = 2,3
>>> a = [[[0,0] for c in range(cols)] for r in range(rows)]
>>> a
[[[0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0]]]
>>> a[1][1] = [1,1]
>>> a
[[[0, 0], [0, 0], [0, 0]], [[0, 0], [1, 1], [0, 0]]]

我认为这不如numpy有效,因为它是一个双for循环,但很容易编写:

>>> rows,cols = 2,3
>>> a = [[[0,0] for c in range(cols)] for r in range(rows)]
>>> a
[[[0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0]]]
>>> a[1][1] = [1,1]
>>> a
[[[0, 0], [0, 0], [0, 0]], [[0, 0], [1, 1], [0, 0]]]

为什么不使用numpy的要求?这只是一个限制,不能使用某些库为什么不使用numpy的要求?这只是一个限制,不能使用某些库
matrix=[[0,0]for u-in-range(cols)]for u-in-range(rows)]
在他的用例中,他想知道是否有其他方法不使用2个循环,但我想这是我能做的最好的了。感谢您在他的用例中提供的帮助
matrix=[[0,0]for uu-in-range(cols)]for u-in-range(rows)]
我想知道是否还有其他方法不使用2个循环,但我想这是我能做的最好的了。谢谢你的帮助