numpy(ndarray)で行列

numpy.matrixは2次元行列しか扱えないので、numpy.arrayを使っていく。

  • 初期化
matrix3x3 = np.array([[1,2,3],[4,5,6],[7,9,8]])
print(matrix3x3)
print(type(matrix3x3))
  • 転置
transposedMatrix3x3 = matrix3x3.T
print(transposedMatrix3x3)
indentityMatrix3x3 = np.array([[1,0,0],[0,1,0],[0,0,1]])
zeroMatix3x3 = np.array([[0,0,0],[0,0,0],[0,0,0]])
print(zeroMatix3x3 - indentityMatrix3x3)
print(3 * indentityMatrix3x3)
  • 行列積
unitVectorX = np.array([1,0,0])
unitVectorY = np.array([0,1,0])
unitVectorZ = np.array([0,0,1])

print(matrix3x3 @ unitVectorX)
print(matrix3x3 @ unitVectorY)
print(matrix3x3 @ unitVectorZ)
# or
print(np.matmul(matrix3x3, unitVectorX))
print(np.matmul(matrix3x3, unitVectorY))
print(np.matmul(matrix3x3, unitVectorZ))
# or
print(np.dot(matrix3x3, unitVectorX))
print(np.dot(matrix3x3, unitVectorY))
print(np.dot(matrix3x3, unitVectorZ))
print(np.inner(unitVectorX, unitVectorY))
invertMarix3x3 = np.linalg.inv(matrix3x3)
print(invertMarix3x3)
print(np.matmul(invertMarix3x3, matrix3x3))
eigenvalueMatrix3x3, eignevalueVectorMatrix3x3 = np.linalg.eig(matrix3x3)
print(eigenvalueMatrix3x3)
print(eignevalueVectorMatrix3x3)

github.com