【发布时间】:2021-05-10 19:30:17
【问题描述】:
给我
>>> scalar = 3
>>> A = [[1,0,0],[0,1,0],[0,0,1]]
>>> D = []
我应该做的是将所有 A 乘以定标器,并将结果存储为 D。我该怎么做?
【问题讨论】:
标签: python matrix range multiplication
给我
>>> scalar = 3
>>> A = [[1,0,0],[0,1,0],[0,0,1]]
>>> D = []
我应该做的是将所有 A 乘以定标器,并将结果存储为 D。我该怎么做?
【问题讨论】:
标签: python matrix range multiplication
使用 numpy。
>>> a = np.identity(3)
>>> a
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
>>> D = a * 3
>>> D
array([[3., 0., 0.],
[0., 3., 0.],
[0., 0., 3.]])
>>>
【讨论】:
对于矩阵,你最好使用 numpy:
import numpy as np
scalar = 3
A = np.array([[1,0,0],[0,1,0],[0,0,1]])
D = scalar * A
print(D) 然后返回
array([[3, 0, 0],
[0, 3, 0],
[0, 0, 3]])
或者,如果您再次需要 Python 列表,请使用返回 [[3, 0, 0], [0, 3, 0], [0, 0, 3]] 的 D.tolist()。
【讨论】:
如果你想把 A 放大三倍,就这样做:
scalar = 3
A = [[1,0,0],[0,1,0],[0,0,1]]
D = scalar * A
# D = [[1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 0, 0], [0, 1, 0], [0, 0, 1]]
如果您尝试将 元素 乘以三,请查看其他答案,或尝试以下操作:
scalar = 3
A = [[1,0,0],[0,1,0],[0,0,1]]
D = [[ele * scalar for ele in sub] for sub in A]
# D = [[3, 0, 0], [0, 3, 0], [0, 0, 3]]
【讨论】:
如果您的原始数组不是身份;你也可以在 numpy 中使用基本缩放来做到这一点......
import numpy as np
scalar = 3
A = [[1,0,0],[0,1,0],[0,0,1]]
numpyArray = np.array(A)
numpyArray = numpyArray*scalar
newArray = numpyArray.tolist()
print(*newArray)
【讨论】: