pythonnumpy高级教程(一位Python大神的笔记)

以前总认为numpy是渣渣,直到深入接触以后才知道功能这么强大。堪比Matlab啊。果然是人生苦短,我用Python。所以本文作为一个记录&笔记,文章内容大多数取自网络以&官网快速入门等,希望可以帮助大家快速入门Numpy。如果你有Matlab基础,那么你能很快看懂本文!(私信小编111即可获取Python视频教程!)

pythonnumpy高级教程(一位Python大神的笔记)(1)

一个栗子

pythonnumpy高级教程(一位Python大神的笔记)(2)

创建矩阵

对于Python中的numpy模块,一般用其提供的ndarray对象。 创建一个ndarray对象很简单,只要将一个list作为参数即可。

例如:

pythonnumpy高级教程(一位Python大神的笔记)(3)

矩阵行数列数

pythonnumpy高级教程(一位Python大神的笔记)(4)

矩阵按行列选取

矩阵的截取和list相同,可以通过[](方括号)来截取

pythonnumpy高级教程(一位Python大神的笔记)(5)

矩阵按条件截取

pythonnumpy高级教程(一位Python大神的笔记)(6)

按条件截取应用较多的是对矩阵中满足一定条件的元素变成特定的值。 例如将矩阵中大于6的元素变成0

pythonnumpy高级教程(一位Python大神的笔记)(7)

Stacking together different arrays

矩阵的合并可以通过numpy中的hstack方法和vstack方法实现:

pythonnumpy高级教程(一位Python大神的笔记)(8)

矩阵的合并也可以通过concatenatef方法

  • np.concatenate( (a1,a2), axis=0 ) 等价于 np.vstack( (a1,a2) )
  • np.concatenate( (a1,a2), axis=1 ) 等价于 np.hstack( (a1,a2) )

通过函数创建矩阵

pythonnumpy高级教程(一位Python大神的笔记)(9)

arange

pythonnumpy高级教程(一位Python大神的笔记)(10)

linspace/ logspace

pythonnumpy高级教程(一位Python大神的笔记)(11)

ones、zeros、eye、empty

ones创建全1矩阵 ,zeros创建全0矩阵 ,eye创建单位矩阵 ,empty创建空矩阵(实际有值)

pythonnumpy高级教程(一位Python大神的笔记)(12)

pythonnumpy高级教程(一位Python大神的笔记)(13)

fromstring

fromstring()方法可以将字符串转化成ndarray对象,需要将字符串数字化时这个方法比较有用,可以获得字符串的ascii码序列。

pythonnumpy高级教程(一位Python大神的笔记)(14)

random

pythonnumpy高级教程(一位Python大神的笔记)(15)

fromfunction

fromfunction()方法可以根据矩阵的行号列号生成矩阵的元素。 例如创建一个矩阵,矩阵中的每个元素都为行号和列号的和。

pythonnumpy高级教程(一位Python大神的笔记)(16)

矩阵的运算

pythonnumpy高级教程(一位Python大神的笔记)(17)

常用矩阵运算符

Numpy中的ndarray对象重载了许多运算符,使用这些运算符可以完成矩阵间对应元素的运算。

运算符说明 矩阵对应元素相加-矩阵对应元素相减*矩阵对应元素相乘/矩阵对应元素相除,如果都是整数则取商%矩阵对应元素相除后取余数**矩阵每个元素都取n次方,如**2:每个元素都取平方

pythonnumpy高级教程(一位Python大神的笔记)(18)

常用矩阵函数

同样地,numpy中也定义了许多函数,使用这些函数可以将函数作用于矩阵中的每个元素。 表格中默认导入了numpy模块,即 import numpy as np 。a为ndarray对象。

常用矩阵函数说明np.sin(a)对矩阵a中每个元素取正弦,sin(x)np.cos(a)对矩阵a中每个元素取余弦,cos(x)np.tan(a)对矩阵a中每个元素取正切,tan(x)np.arcsin(a)对矩阵a中每个元素取反正弦,arcsin(x)np.arccos(a)对矩阵a中每个元素取反余弦,arccos(x)np.arctan(a)对矩阵a中每个元素取反正切,arctan(x)np.exp(a)对矩阵a中每个元素取指数函数,exnp.sqrt(a)对矩阵a中每个元素开根号

当矩阵中的元素不在函数定义域范围内,会产生RuntimeWarning,结果为nan(not a number)

矩阵乘法(点乘)

矩阵乘法必须满足矩阵乘法的条件,即第一个矩阵的列数等于第二个矩阵的行数。 矩阵乘法的函数为 dot 。

pythonnumpy高级教程(一位Python大神的笔记)(19)

矩阵的转置 a.T

pythonnumpy高级教程(一位Python大神的笔记)(20)

矩阵的转置还有更简单的方法,就是a.T。

pythonnumpy高级教程(一位Python大神的笔记)(21)

矩阵的逆

设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=E。 则我们称B是A的逆矩阵,而A则被称为可逆矩阵。

求矩阵的逆需要先导入numpy.linalg,用linalg的inv函数来求逆。矩阵求逆的条件是矩阵应该是方阵。

pythonnumpy高级教程(一位Python大神的笔记)(22)

矩阵信息获取

(如均值等)

最值

获得矩阵中元素最大最小值的函数分别是max和min,可以获得整个矩阵、行或列的最大最小值。

pythonnumpy高级教程(一位Python大神的笔记)(23)

形状处理

改变数组的形状

pythonnumpy高级教程(一位Python大神的笔记)(24)

数组的形状可以用以下方式改变。注意,下面的三个命令都返回一个修改后的数组,但不改变原始数组:

pythonnumpy高级教程(一位Python大神的笔记)(25)

整形函数用修改的形状返回它的参数,而NDARRA.ReSIZE方法修改数组本身:如果在整形操作中给出尺寸为-1,则其他尺寸自动计算:

pythonnumpy高级教程(一位Python大神的笔记)(26)

曼德勃罗

pythonnumpy高级教程(一位Python大神的笔记)(27)

pythonnumpy高级教程(一位Python大神的笔记)(28)

以上就是小编总结的Numpy基础,希望可以帮到大家,获取更多资料教程可评论转发后私信小编111免费领取!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页