• NumPy


    NumPy

    建议

    • 使用numpy时, 建议采用面向过程的思想, 因为numpy中对象有的, numpy模块都会提供函数获取到或者进行操作
    • 学会了MATLAB, 在NumPy中可以找到很多MATLAB的影子

    数组操作

    数组的拼接与分割

    • np.concatenate((arr1, arr2), axis=1) # axis=1表示列优先, axis=0表示行优先, 它的功能和np.hstack和np.vstack一样
    • np.split(arr, 2, axis=1) # axis表示列优先, axis=0表示行优先, 它的功能和np.hsplit和np.vsplit一样, 返回list, 包含ndarray
    • 记忆方法: 列优先则是在水平方向放去拉伸数组, 行优先则是在竖直方向上去拉伸数组

    其他操作

    • np.reshape()
    • np.shape()
    • np.size()
    • np.diag()
    • np.eye()
    • np.zeros()
    • np.ones()

    有用的

    • np.max()
    • np.min()
    • 以上返回的是指
    • np.argmax()
    • np.argmin()
    • 返回的是对应的值的下标
    • np.std()
    • np.mean()
    • np.var()
    • np.cumsum()
    • np.cumprod()
    • np.sum()

    random模块

    • np.random.rand(): 均匀分布
    • np.random.randn(): 高斯分布
    • np.random.uniform(): 生成[0, 1]范围的均匀分布
    • np.random.normal(): 高斯分布

    矩阵(是ndarray的子类)操作

    • 通过字符串的方式模仿MATLAB(但是还是MATLAB使用起来更加方便)
    • mat = np.mat('1 2 3; 4 5 6') <=> np.matrix('1 2 3; 4 5 6', copy=False)
    • mat = np.matrix('[1 2 3; 4 5 6]', copy=True) # 创建一个矩阵
    • mat = np.bmat('arr1; arr2') # 通过两个分块矩阵创建一个新的矩阵, bmat是block matrix

    ufunc

    • 在numpy中所有的符号运行都是调用了ufunc

      • +, -, *, /, **
    • 当两个矩阵的shape一致时好理解, 但是当shape不一样的时候, ufunc会采用广播机制

      • 如:
        • arr1 = np.mat([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
        • arr2 = np.mat([1, 2, 3])
        • arr1 + arr2 ?
        • ufunc + 会将arr2的数据进行广播生成一个[[1, 2, 3], [1, 2, 3], [1, 2, 3]]再参与运算

    保存读取数据

    • 保存数组(和MATLAB中的save一样)

      • 二进制保存

        • np.save(filename, arr)
        • np.savez(filename, arr1, arr2, arr3) # 保存多个
      • 文本保存(更加常用)

        • np.savetxt(filename, arr, fmt='%d', delimeter=',') # 保存为csv格式
    • 读取数据

      • 二进制

        • np.load()
      • 文本

        • np.loadtxt()
  • 相关阅读:
    OpenStack入门篇(八)之镜像服务Glance
    OpenStack入门篇(七)之认证服务Keystone
    OpenStack入门篇(六)之OpenStack环境准备
    OpenStack入门篇(五)之KVM性能优化及IO缓存介绍
    OpenStack入门篇(四)之KVM虚拟机介绍和管理
    OpenStack入门篇(三)之KVM介绍及安装
    OpenStack入门篇(二)之OpenStack架构
    OpenStack入门篇(一)之云计算的概念
    Linux系统运维基础管理命令总结
    TCP三次握手和四次挥手以及11种状态
  • 原文地址:https://www.cnblogs.com/megachen/p/10050683.html
Copyright © 2020-2023  润新知