020-29815005
预约专线时间:09:00-23:59

numpy的简单应用

新闻来源:本站 日期:2021-06-28
numpy是python的一个扩展库,功能很强大,是用于数学计算和数据分析的库。安装就不说了直接度娘吧。开发环境就是Windows7+python3.8。
    线性代数

    它的基本运算单位就是Array,可以把它翻译成向量或者数组。使用arange方法自动生成一个向量,它是左闭右开的区间,用法与内置函数range一致。或者是array方法指定一个序列为向量.

    importnumpyasnp#设置一个别名print(np.array([1,2,3,4]))

    它的可使用成员很多,可以使用dir函数查看它的成员

    dir(np)

    它的可使用成员太多了一共有93行大家自行查看吧。返回一个奇数的数组可以修改arange函数的步长。

    print(np.arange(1,10,2))

    使用一个库函数就可以创建一个单位向量,这就是一个3*3的向量

    print(np.identity(3))

    生成一个等差数组,区间0-10返回11个数,是闭区间自动计算等差

    print(np.linspace(0,10,11))

    还有两个数组方法比较神奇,就是对数数组和指数数组。

    print(np.logspace(0,100,10))#从0到100作为指数,底数是10计算log值#指数数组print(np.logspace(1,5,5,base=2))#base为底数

    返回一个全0和全1的一维向量

    print(np.zeros(3))print(np.ones(3))


numpy


    莫比乌斯环

    如果要指定一个多维向量则传递的参数是一个数组。还有三个关于分布的方法,分布是离散数学里很重要的知识,具体的数学原理自行度娘。这三个分别是hamming、blackman、kaiser数组。如下例:

    print(np.hamming(20))print(np.blackman(20))print(np.kaiser(12,5))

    生成一个随机向量:

    print(np.random.randint(0,50,5))

    标准正态分布:

    print(np.random.standard_normal(5))

    对角矩阵,函数里指定的参数位于对角线上。

    print(np.diag([1,2,3]))

    还有就是numpy的向量满足线性运算,虽然它的表示方法和内置引用数据类型list一样,但是在运算时不太一样。比如向量的数乘运算,一个向量乘以一个整数,就是它的每一个分量都乘以这个整数。如下例:

    linear=np.arange(4)print(3*linear)#结果如下'''[0246]'''

    但是列表就不是了,它是列表里的元素重复n次。如下例:

    [1,3,2]*2[1,3,2,1,3,2]

    所以,列表是不满足线性运算的。

    在改变向量里的值它不是原地操作的而是生成一个新的向量,如下例:

    x=np.arange(8)print(x)print(np.append(x,8))print(np.append(x,[9,10]))

    下标修改向量的值是原地操作的。如下例:

    python=np.arange(4)python[0]=88

    还有就是向量之间的相乘,有点像高数空间向量那一章节的向量的点积运算。

    #向量的叉乘运算java1=np.array((1,2,3))java2=np.array(([1,2,3],[4,5,6],[7,8,9]))print(java1*java2)

    横着看不太好理解,那就把java2向量竖着看。把java1向量的第一个元素乘上java2向量的第一列里的每一个元素,也就是对应位置相乘。这个计算原则满是满足两个向量的相加。如下例:

    python1=np.array((1,2,3))python2=np.array(([1,2,3],[4,5,6],[7,8,9]))print(python1+python2)

    还有就是对角线转置运算:

    b=np.array(([1,2,3],[4,5,6],[7,8,9]))print(b.T)

    numpy的成员真的是太多了,没办法一次性讲完,只好先讲这么多了,用到什么就再讲什么吧。