- 列表的形式为[x1,x2,x3,...,],这个"x1"可以是列表、元组等各种。两个列表相加是指将两个列表拼接起来,列表只能做加运算,没有减、乘、除,如:
a=[1,2,3]
b=[4,5,6,8]
print(a+b)
输出[1,2,3,4,5,6,8]。
注意:两个列表无法在数值上进行运算,比如说对应元素相乘,相加等。列表可以通过np.array()转化为数组,转化为数组后就可以进行一些运算了。并且,列表不可以转置。
容易出错的例子:
a=[1,2,3]
b=[1,2,3]
print(b==a)
a=numpy.array(a)
b=numpy.array(b)
print(b==a)
第一个和第二个分别输出:
True
[ True True True]
- 数组的形式一般都是由列表转换,numpy.array(list)。在数组中可以进行很多运算,最基础的是加减乘除,数组的加减乘除是数组各个元素之间进行加减乘除运算,如:
a=[[1,2,3],[1,2,3],[1,2,3]]
b=[[1,2,3],[1,2,3],[1,2,3]]
a=numpy.array(a)
b=numpy.array(b)
print(a+b)
print(a-b)
print(a*b)
print(b/a)
输出:
[[2 4 6]
[2 4 6]
[2 4 6]]
[[0 0 0]
[0 0 0]
[0 0 0]]
[[1 4 9]
[1 4 9]
[1 4 9]]
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
除了加减乘除,数组还有一些自带的函数,就不一一介绍了。 取数组中的某一个元素可以用a[i][j],取列表中的元素也是a[i][j],而取矩阵中的元素是a[i,j]
对于一维数组来说,没有维度的概念,用例子解释一下:(转置前后形状不变)
a=np.array([1,2,3])
print(a.shape)
print(a.T.shape)
输出:
(3,)
(3,)
- 矩阵的形式是mat(array)或mat(list)得来的,也就是说可以由列表和数组转化为矩阵。矩阵与数组之间很大的区别在于两个矩阵通过
运算和两个数组通过
运算的结果是不一样的。如:
a=numpy.array([[1,2,3],[1,2,3],[1,2,3]])
b=numpy.array([[1,2,3],[1,2,3],[1,2,3]])
print(a*b)
a=mat(a)
b=mat(b)
print(a*b)
输出:
[[1 4 9]
[1 4 9]
[1 4 9]]
[[ 6 12 18]
[ 6 12 18]
[ 6 12 18]]
一个是矩阵乘法运算,一个是元素相乘。
后续用到张量会加进来进行一些补充。