参考:http://blog.csdn.net/ikerpeng/article/details/18704379
作为初学者 很容易混淆这两个概念 记录一下
数组和C语言中一样,可以通过下标访问,例如:一个3*3的数组,在Python中是这样的:array([[1,2,3],[1,1,2],[1,2,2]]),用a[1][2]访问的是第二行第三个元素:2.
但是python中很多的操作都是对矩阵进行的。
所以通过调用: from numpy import *(我不知道为什么import numpy不行)
然后:a=mat(a)就可以将数组转化为矩阵,matrxi([[1,2,3],[1,1,2],[1,2,2]])
你可以通过a[1]来访问 第二个向量,但是不可以通过a[1][2]访问到原来那个元素2.(如何访问matrix中的单个元素啊?现在还不知道)
zeros((3,4))生成是一个3*4的数组
其中的.min(0)操作是对列进行的,选出每一列的最小值,相应的man(1)就是对于行操作的。实验发现 array和matrxi都具有这个操作
再发现原来很多的操作都是他们共同拥有的!
列表的表示就是前面没有array或是matrix关键字 他的形式是这样的: a=[[1,2],[2,2],[3,3]] 其中的元素可以是数字,字符串等等,关键是还可以嵌套列表
列表的访问:和数组的访问是一样的!
上面那个a 就可以直接通过a[1]访问到[2,2]这个元素,a[1][1]访问的元素就是这里面的第二个2.
numpy里面的数组(array)和矩阵(mat)在很多方面的操作都是一样的。但是数组的相乘和矩阵的相乘是不一样的。矩阵的相乘是线性代数里面的运算规则。而数组是对应元素相乘。同时:.transpose()可以实现数组和矩阵的转置。
ones(n)=ones((n))
一般来说 list()将对象转换为list 对于array不是很管用。对于N*1的才管用。