如何使用以下矩阵:
矩阵= [[2,0,2],[0,2,0],[2,0,2]]并将其转换为[[4,0,4],[0,4,0] ,[4,0,4]]
列表中的所有元素都变为平方?我正在尝试列表理解。
答案 0 :(得分:5)
使用列表理解:
>>> lis = [[2,0,2],[0,2,0],[2,0,2]]
>>> [[y**2 for y in x] for x in lis]
[[4, 0, 4], [0, 4, 0], [4, 0, 4]]
答案 1 :(得分:2)
使用numpy:
import numpy as np
matrix = [[2,0,2],[0,2,0],[2,0,2]]
np_matrix = np.array(matrix)
np_matrix**2
列表理解可能看起来像这样
matrix2 = [
[e*e for e in l]
for l in matrix
]
答案 2 :(得分:2)
列表推导可以嵌套:
sqd = [[elem*elem for elem in inner] for inner in outer]
在这种情况下,outer
将是您的矩阵matrix
>>>> matrix = [[2,0,2],[0,2,0],[2,0,2]]
>>>> sqd = [[elem*elem for elem in inner] for inner in matrix]
>>>> sqd
[[4, 0, 4], [0, 4, 0], [4, 0, 4]]
答案 3 :(得分:0)
如果你的意思是
matrix = [[2,0,2],[0,2,0],[2,0,2]]
列表列表,然后执行以下操作
import numpy as np
np.square(matrix)
这为您提供如下输出:
array([[4, 0, 4],
[0, 4, 0],
[4, 0, 4]], dtype=int32)
但是,如果你真的认为它是一个矩阵,你必须首先创建一个矩阵,如下所示:
X = np.matrix('2 0 2; 0 2 0; 2 0 2')
然后按照上面的说法进行操作,即
np.square(X)
这为您提供了所需的输出,如下所示:
[[4 0 4]
[0 4 0]
[4 0 4]]