使用+ =运算符添加两个矩阵时,我注意到了一个奇怪的现象。
我正在使用numpy版本1.10.1。
Python版本'3.5.4 | Anaconda自定义(64位)| (默认值,2017年8月14日,13:41:13)[MSC v.1900 64位(AMD64)]'
import numpy as np
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = [[3, 2, 1], [9, 8, 7], [6, 5, 4]]
c = [[3, 8, 7], [5, 4, 2], [6, 1, 9]]
summatrix = []
matrixtemp = np.matrix(a)
for i in (b, c):
matrixtemp = matrixtemp + np.matrix(i)
summatrix.append(matrixtemp)
print(summatrix)
结果符合预期:
[matrix([[ 4, 4, 4],
[13, 13, 13],
[13, 13, 13]]),
matrix([[ 7, 12, 11],
[18, 17, 15],
[19, 14, 22]])]
但是当我执行以下操作时:
import numpy as np
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = [[3, 2, 1], [9, 8, 7], [6, 5, 4]]
c = [[3, 8, 7], [5, 4, 2], [6, 1, 9]]
summatrix = []
matrixtemp = np.matrix(a)
for i in (b, c):
matrixtemp += np.matrix(i)
summatrix.append(matrixtemp)
print(summatrix)
我得到:
[matrix([[ 7, 12, 11],
[18, 17, 15],
[19, 14, 22]]),
matrix([[ 7, 12, 11],
[18, 17, 15],
[19, 14, 22]])]
这是一个简单的修复程序,但只是想知道为什么会发生这种情况?