array:数组
matrix:矩阵
list:列表
a = [[1,2,3],[4,5,6]] 两种array的定义方式,第一种方式可以看出list不是array,但却有很大的联系 a = np.array(a) c=np.array([[4, 3], [2, 1]]) a=[[1,2],[3,4]] list的定义方式
注意:虽然从外型看,array和matrix与list很像,但实际上是不一样的。list是在python中的,array只存在于numpy这个科学计算库中。为什么array和list差不多,还要在numpy专门设置一个array?array在numpy中有.shape,.size等函数可以直接调用用来计算array,但在list中是没有的。
因为numpy是python的库,所以array是属于python的,也具备list的属性和方法,比如len函数
numpy中最基本(默认)的类型是array,他的相关操作都是按元素操作的(即用作数值计算当中,按元素操作有+,-,/,*等)。
Numpy matrices必须是2维的,但是numpy arrays (ndarrays) 可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。
在numpy中matrix的主要优势是:相对简单的乘法运算符号。例如,a和b是两个matrices,那么a*b,就是矩阵积(array的矩阵积用dot,*表示相应位置的元素相乘)。
import numpy as np a=np.mat('4 3; 2 1') matrix的定义方式 b=np.mat('1 2; 3 4') print(a) # [[4 3] # [2 1]] print(b) # [[1 2] # [3 4]] print(a*b) # [[13 20] # [ 5 8]]
array和list中元素的访问机制
>>> a=[[1,2],[3,4]] >>> a[0] [1, 2] >>> a[0,1] Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: list indices must be integers, not tuple 从这可以看出要求必须是整数,不能是tuple >>> a[0][1] 2 >>> a = np.array([[1,2],[3,4]]) 对于array来说既可以采用list的访问机制,也可以用array独特的 >>> a[0,0] 1 >>> a[0][1] 2