注:本系类笔记采用的是Python3.5X版本,编程环境为Windows64位下的Anaconda
所有代码部分均为连续的,“结果”为在jupyter分步运行结果
代码部分:
import numpy as np
arr1 = np.array([[1,2,3],#定义两个矩阵
[4,5,6]])
arr2 = np.array([[1,1,2],
[2,3,3]])
print(arr1)
print(arr2)
结果:
[[1 2 3]
[4 5 6]]
[[1 1 2]
[2 3 3]]
print(arr1 + arr2)#加法
结果:
[[2 3 5]
[6 8 9]]
print(arr1 - arr2)#减法
结果:
[[0 1 1]
[2 2 3]]
print(arr1 * arr2)#按位相乘,同位置的数相乘
结果:
[[ 1 2 6]
[ 8 15 18]]
print(arr1 ** arr2)#求幂操作 如6^3=216
结果:
[[ 1 2 9]
[ 16 125 216]]
print(arr1 / arr2))#除法
结果:
[[ 1. 2. 1.5 ]
[ 2. 1.66666667 2. ]]
print(arr1 % arr2)#取余
结果:
[[0 0 1]
[0 2 0]]
print(arr1 // arr2)#取整
结果:
[[1 2 1]
[2 1 2]]
注:以上操作需要矩阵的大小是相同的,两个矩阵都需要是m*n维的
————————————————————————————————————
print(arr1+2)#所有的元素加2
结果:
[[3 4 5]
[6 7 8]]
print(arr1*10)#所有的元素乘以10
结果:
[[10 20 30]
[40 50 60]]
注:其他除法,减法同理。
————————————————————————————————————
#矩阵元素判断
arr3 = arr1 > 3 #判断哪些元素大于3
print(arr3)
结果:
[[False False False]
[ True True True]]
————————————————————————————————————
注:以下重点为线性代数中矩阵的运算
arr4 = np.ones((3,5))
print(arr4)
结果
[[ 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1.]]
print(arr1)#2行3列
结果:
[[1 2 3]
[4 5 6]]
np.dot(arr1,arr4)#线代中矩阵乘法 (第一种写法)
结果:
array([[ 6., 6., 6., 6., 6.],
[ 15., 15., 15., 15., 15.]])
arr1.dot(arr4)#矩阵乘法(第二种写法)
结果:
array([[ 6., 6., 6., 6., 6.],
[ 15., 15., 15., 15., 15.]])
print(arr1)
print(arr1.T)#矩阵转置 (第一种写法)
print(np.transpose(arr1))#矩阵转置 (第二种写法)
结果:
[[1 2 3]
[4 5 6]]
[[1 4]
[2 5]
[3 6]]
[[1 4]
[2 5]
[3 6]]