zoukankan      html  css  js  c++  java
  • numpy模块学习笔记

    # encoding=utf-8
    import numpy as np
    from numpy.linalg import *
    
    
    def main():
        # 1、最基本的array
        lst = [[1, 3, 5], [2, 4, 6]]
        print(type(lst))  # <class 'list'>
        np_lst = np.array(lst)
        print(type(np_lst))  # <class 'numpy.ndarray'>
        # 指定数据类型 bool int int8/16/32/64/128 uint8/16/32/64/128 float/16/32/64 complex64/128
        np_lst1 = np.array(lst, dtype=np.float)
        # 相关属性
        print(np_lst1.shape)  # 形状
        print(np_lst1.ndim)   # 维度
        print(np_lst1.dtype)  # 类型
        print(np_lst1.itemsize)  # 每个元素的大小(字节)
        print(np_lst1.size)   # 大小(元素个数)
    
        # 2、常用的数组
        print(np.zeros([2, 4]))  #
        print(np.ones([3, 5]))   #
        print("Rand:")
        print(np.random.rand())
        print(np.random.rand(2, 4))
        print(np.random.randint(1, 10, 3))
        # 正态分布
        print("Randn:")
        print(np.random.randn(2, 4))
        # 从提供的数字里面挑选
        print("Choice:")
        print(np.random.choice([10, 20, 30]))
        # 生成其他分布
        print("Distribute:")
        print(np.random.beta(1, 10, 20))
    
        # 3、numpy的相关操作
        # 单个数组
        lst2 = np.arange(1, 11).reshape([2, 5])
        print(lst2)
        print("Exp:")  # 指数(以e为底)
        print(np.exp(lst2))
        print("Exp2:")  # (以2为底)
        print(np.exp2(lst2))
        print("Sqrt:")  # 开方
        print(np.sqrt(lst2))
        print("Sin:")  # 求正弦
        print(np.sin(lst2))
        print("Log:")  # 求对数
        print(np.log(lst2))
        print("Sum:")  # 求和 可以传入axis=?
        print(lst2.sum(axis=0))  # axis越大 层次越深
        print("Max:")  # 求最大值 axis=? Min一样
        print(lst2.max())
    
        # 两个数组
        a = np.array([11, 22, 33, 44])
        b = np.array([1, 2, 3, 4])
        # 加减乘除
        print("Add: %s" % (a+b))
        print("Sub: %s" % (a-b))
        print("Mul: %s" % (a*b))
        print("Div: %s" % (a/b))
        print("Dot:")  # 点乘
        print(np.dot(a.reshape([2, 2]), b.reshape([2, 2])))
        print("Cancatenate:")
        print(np.concatenate((a, b), axis=0))
        print(np.vstack((a, b)))
        print(np.hstack((a, b)))
        print(np.split(a, 2))
    
        # 4、矩阵运算 线性方程  # 先引入线性包from numpy.linalg import *
        print(np.eye(3))
        juzhen = np.array([[1, 2],
                           [3, 4]])
        print("Inv: %s" % inv(juzhen))  # 矩阵的逆
        print("T: %s" % juzhen.transpose())  # 矩阵的转秩
        print("Det: %s" % det(juzhen))  # 矩阵的行列式
        print("Eig:")
        print(eig(juzhen))  # 矩阵的特征值和特征向量
        # 解线性方程
        print("Solve:")
        y = np.array([[5], [7]])
        print(solve(juzhen, y))
    
        # 5、其他领域的应用
        print("FFT:")  # 信号处理
        print(np.fft.fft(np.array([1, 1, 1, 1, 1, 1, 1])))
        print("Coef:")  # 皮尔逊系数
        print(np.corrcoef([1, 0, 1], [0, 2, 1]))
        print("Poly:")  # 一元多次函数
        print(np.poly1d([2, 1, 3]))   # 2x^2 + x +3
    
    if __name__ == "__main__":
        main()

     scipy参考链接:

    1、https://docs.scipy.org/doc/scipy-0.7.x/reference/

    2、Scipy:高端科学计算

     pandas参考链接:

    1、http://pandas.pydata.org/pandas-docs/stable/cookbook.html#cookbook

    2、https://www.analyticsvidhya.com/blog/2016/01/12-pandas-techniques-python-data-manipulation/

  • 相关阅读:
    Java中try-catch-finally的一点理解
    子类继承父类的私有属性
    Java中的String[] args
    Java类和类成员的访问权限修饰符
    JAVA中抽象类与接口的区别
    Java C# .net 和 C C++ 跨平台的区别
    Java中的instanceof关键字
    深入理解JAVA的多态性[转]
    Linux文件系统的目录结构
    硬盘分区
  • 原文地址:https://www.cnblogs.com/xiaxuexiaoab/p/8584734.html
Copyright © 2011-2022 走看看