zoukankan      html  css  js  c++  java
  • numpy 从入门到遗忘

    不常用的函数总是遗忘,很是困扰啊。于是痛下时间,做一个系统的总结,纯原创,都是些实际项目中常用的函数和方法,当然还有一些这边也是没有记录的,因为我在实际数据处理过程中也没有遇到过(如字符串处理等等)。

    创建基本ndarray类实例:

    import numpy as np
    
    
    np.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
    

     

    序号参数及描述
    1. object 任何暴露数组接口方法的对象都会返回一个数组或任何(嵌套)序列。
    2. dtype 数组的所需数据类型,可选。
    3. copy 可选,默认为true,对象是否被复制。
    4. order C(按行)、F(按列)或A(任意,默认)。
    5. subok 默认情况下,返回的数组被强制为基类数组。 如果为true,则返回子类。
    6. ndimin 指定返回数组的最小维数。

     

    数据类型:

    分为三大类:整型,浮点型,python对象。

    import numpy as np
    
    np.array("str",dtype=np.unicode) # 举个栗子,字典,集合等等均可
    np.array([1,2,3],dtype=np.int32)
    np.array([1,2,3],dtype=np.float32)
    

      

    数组属性:

    ndarray.shape

    ndarray.reshape(shape) # 等同于np.reshape(a,newshape),且要注意shape中的-1表示根据剩下的维度计算得出。

    ndarray.ndim # 返回数组维度

    创建例程:

    np.zeros(shape,dtype=float)

    np.ones(shape,dtype=None)

    np.arange(start,stop,step,dtype) # 注意点stop值取不到

    numpy.linspace(start, stop, num, endpoint=True, retstep, dtype)  # endpoint为True 则包含stop值

    numpy.logspace(start, stop, num, endpoint, base, dtype)

    切片和索引:

    解释起来比较复杂,最常用的操作之一,划重点,涵盖的信息量很大。

    a = np.zeros((2,3))
    
    # 简单索引
    a[:,:]
    a[1:,:2]
    
    # 整数索引
    a[[0,1],:]
    a[:,[0,1,2]]
    
    # 布尔索引 # 自己的理解,矩阵相乘,非点积
    a = np.array([[  0,  1,  2],[  3,  4,  5],[  6,  7,  8],[  9,  10,  11]])
    print(a>5)
    print(a[a>5])
    >>>[[False False False]
         [False False False]
         [ True  True  True]
         [ True  True  True]]
    >>>[ 6  7  8  9 10 11]
    

      

      

     数组操作:

    np.reshape(a,newshape)

    np.linalg.inv() # 矩阵的逆

    ndarray.T

    np.expand_dims(a, axis) # 增加维度,其实我觉得reshape完全够用

    ### 数组连接

    np.concatenate((a1, a2, ...), axis=0, out=None)  # 沿着现存的轴连接数据序列

    np.stack(arrays, axis=0, out=None)  # 沿着新轴连接数组序列

    np.hstack(tup)  # 水平堆叠序列中的数组

    np.vstack(tup) # 竖直堆叠序列中的数组

    ### 添加/删除数组

    np.append(arr, values, axis=None) 

    np.insert(arr, obj, values, axis=None)

    np.delete(arr, obj, axis=None) # 删除指定索引元素

    算术运算:

    np.power() # np.power(a,2)

    np.sqrt()

    np.abs()

    np.add()

    np.subtract()

    np.divide()

    np.multiply()

    # 矩阵运算

    np.dot() # 线代的点积。如果输入都为1D,计算内积。如果输入多维,那么必须满足矩阵乘积维数要求

    np.matmul() # 好像和np.dot()一样

    统计运算:

    np.mean()

    np.sum()

    np.std() # 标准差

    np.var() # 方差

    np.round(a, decimals=0, out=None) # 保留几位小数

    np.max()   np.min() np.sort()

    np.argmax() np.argmin() np.argsort()

  • 相关阅读:
    为自己的应用程序添加脚本支持
    关于Excel VBA程序的界面编程及其他
    下载JAVA SDK 1.5
    在软件产品中使用VBA的软件和企业
    VBHelper:坚守脚本(转载)
    Google Desktop Search试用手记
    几个不错的开源的.net界面控件
    C++强大背后
    extern用法详解
    条款1:尽量用const和inline而不用#define
  • 原文地址:https://www.cnblogs.com/zenan/p/8472875.html
Copyright © 2011-2022 走看看