机器学习笔记之一:Numpy

声明:我用的是Python3.5 目前在python3中这个版本兼容性最好

Numpy比较简单,要注意ndarray的0维是Y方向展开的,这意味着 如果你创建了一个向量,那它将是一个列向量,如果你创建了一个(3,4)的矩阵,他将是一个三行四列的矩阵,其中dim0长度为3,此矩阵包含3个4阶行向量。

然后就是加减乘除都是逐元素计算,可以直接与数计算,也可以与同shape的ndarray或者list tuple之类运算,如果与数运算就是对每个元素执行此计算,如果与同shape的ndarry之类的计算,就是相应元素执行计算,据我观察 好像是完全支持所有运算符包括// **之类的比较特殊的运算符

矩阵乘法使用dot,dot函数对两个向量乘法直接就是点乘 不分先后顺序,得到一个数,如果是矩阵和矩阵或矩阵和向量相乘,则按照矩阵乘法的规则来。需要注意的是,当向量被调用dot函数时,即vec.dot(mat)时,vec是作为一个行向量的,这在向量之间调用dot也说得通,即vec.dot(vec2)时 vec也是被当作一个行向量的,这样就统一了向量和矩阵的乘法,只要是向量在前 则此向量为行向量,向量在后则为列向量,mat.dot(vec)中vec就是列向量

但是需要注意的是,numpy中的向量是无所谓转置的,即在没有运算时它是没有所谓行向量列向量的分别的,但是vec.T和转置函数仍然可以调用 返回值为向量本身

你可能感兴趣的:(机器学习笔记之一:Numpy)