zoukankan      html  css  js  c++  java
  • Python之Numpy

    numpy属性

    • ndim:维度
    • shape:行数和列数
    • size:元素个数

    转化列表为矩阵:
    temp = np.array([[1, 2], [3, 4]])




    数据创建

    • array:创建数组
    • dtype:指定数据类型
    • zeros:创建数据均为0
    • ones:创建数据均为1
    • empty:创建数据均接近0
    • arange:按指定范围创建数据
    • linspace:创建线段
    • reshape:更改数据形状

    dtype示例

    import numpy as np
    temp = np.ones((3, 4), dtype = np.int)
    

    arange示例

    import numpy as np
    temp = np.arange(1, 20, 3)
    

    前两个参数为范围,第三个参数为步长。

    reshape示例

    import numpy as np
    temp = np.arange(12).reshape((3, 4))
    

    linspace示例

    import numpy as np
    temp = np.linspace(1, 10, 20)
    

    前两参数为端点,第三个参数代表有多少个数据。




    基础运算

    加、减、乘法(+ 、- 、×)均可直接使用。

    这里的乘法是相同位置的元素相乘,不是矩阵的乘法。

    乘方通过两个乘号 ×× 实现。


    dot()

    该函数实现矩阵的乘法。

    用法一:

    temp = np.dot(a, b)
    

    用法二:

    temp = a.dot(b)
    

    sum() min() max()

    这三个函数默认以行为单位进行运算,若需要以列为单位,则需要更改axis的值。(axis默认为0 。)

    示例:

    print(np.sum(temp, axis = 1))
    

    argmin() argmax()

    这两个函数会返回矩阵中最小值或最大值的索引。


    mean() average()

    两函数均可返回平均值。


    median()

    该函数返回中位数。


    cumsum() diff()

    该函数与matlab中的 cumsum() 累加函数类似。该函数中,生成的没一想矩阵元素均是从原矩阵首项累加到对应项的元素之和。

    如原矩阵为

    (egin{bmatrix} 0&1 \ 2&3 end{bmatrix})

    函数处理完后,矩阵为

    (egin{bmatrix} 0&1 \ 3&6 end{bmatrix})

    相应的,diff() 为累差函数。该函数计算的是每一行中,后一项与前一项的差。


    nonzero()

    该函数将所有非零元素的行与列坐标分割开,重构成两个分别关于行和列的矩阵。

    例如:原矩阵为

    (egin{bmatrix} 1&2 \ 3&4 end{bmatrix})

    输出为

    array([0, 0, 1, 1]), array([0, 1, 0, 1])


    sort()

    该函数对矩阵的每一行进行排序,行内数据的排序,行之间的数据不会互相影响。


    transpose()

    该函数可以实现矩阵的转置。

    使用示例:

    temp = np.array([[1, 2], [3, 4]])
    temp = np.transpose(temp)
    

    temp.T 也可以实现矩阵的转置。


    clip()

    该函数可以设定上下限,并对矩阵内在上下限外的数据替换为上下限边界值。

    函数格式:clip(Array, Array_min, Array_max)




    索引操作

    flatten()

    该函数可以将多维矩阵展开成1行的数列。而flat是一个迭代器,本身是一个object属性。

    示例:

    temp = np.array([[1, 2], [3, 4]])
    for i in temp.flat:
        print(i)
    

    输出结果为:1 2 3 4




    Array合并

    vstack()

    Vertical Stack. 该函数实现了对两个矩阵的上下合并。


    hstack()

    Horizontal Stack. 该函数实现了对两个矩阵的左右合并。


    concatenate()

    该函数可以实现多个矩阵或序列的连接。

    格式:

    np.concatenate((a, b, c, d), axis = 0)

    axis控制矩阵的纵向或横向。




    分割操作

    split()

    格式:

    np.split(Array, pieces number, axis)

    axis控制分割方向,0为横向切割,1为纵向切割。


    不等量分割

    函数:array_split()

    使用格式与split()相同。


    vsplit() hsplit()

    垂直分割与水平分割。




    拷贝

    =或者copy()均可完成数据的拷贝。

    示例:

    a = b
    
    a = b.copy()
    
    我是这耀眼的瞬间,是划过天边的刹那火焰。
  • 相关阅读:
    javascript推荐书籍
    关于Cookie和Session的优缺点
    PHP try catch
    DQL、DML、DDL、DCL的概念与区别
    XP/Win7下QTP11循环试用30天的破解方法
    struts.xml配置详解
    MyEclipse8.5破解方法
    Myeclipse编写struts程序
    关于Hibernate的关联映射
    Java代码到字节码——第一部分
  • 原文地址:https://www.cnblogs.com/Rane/p/13358175.html
Copyright © 2011-2022 走看看