zoukankan      html  css  js  c++  java
  • Numpy_06 数组的文件输入输出 线性代数

    github博客传送门
    csdn博客传送门

    Numpy系列

    Numpy_01 创建 指定数据类型 查看维度和数据类型 简单的数学运算
    Numpy_02 索引和切片
    Numpy_03 转置和轴对换
    Numpy_04 通用函数
    Numpy_05 数据处理
    Numpy_06 数组的文件输入输出 线性代数

    将数组写入本地,将数组从本地读取

    import numpy as np
    # NumPy能够读写磁盘上的文本数据或二进制数据。
    # np.save和np.load是读写磁盘数组数据的两个主要函数。默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中的:
    arr = np.arange(10)  # 生成一个数组
    np.save('some_array', arr)  # 保存数组 arr 名称为 'some_array'
    # 如果文件路径末尾没有扩展名.npy系统会默认加上
    print(np.load('some_array.npy'))
    # 通过np.savez可以将多个数组保存到一个未压缩文件中,将数组以关键字参数的形式传入即可
    np.savez('array_archive.npz', a=arr, b=arr)
    
    arch = np.load('array_archive.npz')
    print(arch['b'])
    # 如果要将数据压缩,可以使用numpy.savez_compressed:
    np.savez_compressed('arrays_compressed.npz', a=arr, b=arr)
    

    线性代数

    线性代数(如矩阵乘法、矩阵分解、行列式以及其他方阵数学等)是任何数组库的重要组成部分。
    不像某些语言(如MATLAB),通过*对两个二维数组相乘得到的是一个元素级的积,而不是一个矩阵点积。
    因此,NumPy提供了一个用于矩阵乘法的dot函数(既是一个数组方法也是numpy命名空间中的一个函数):

    x = np.array([[1., 2., 3.], [4., 5., 6.]])
    y = np.array([[6., 23.], [-1, 7], [8, 9]])
    
    print(x)
    print(y)
    print(x.dot(y))  # 等价于 print(np.dot(x, y))
    
    # 一个二维数组跟一个大小合适的一维数组的矩阵点积运算之后将会得到一个一维数组:
    print(np.ones(3))  # 生成一个 数组 值为 1
    print(np.dot(x, np.ones(3)))  # 点积
    
    print(x @ np.ones(3))  # 点积 相等于 dot
    

    numpy.linalg

    numpy.linalg中有一组标准的矩阵分解运算以及诸如求逆和行列式之类的东西。
    它们跟MATLAB和R等语言所使用的是相同的行业标准线性代数库,
    如BLAS、LAPACK、Intel MKL(Math Kernel Library,可能有,取决于你的NumPy版本)等:

    from numpy.linalg import inv, qr
    
    X = np.random.randn(5, 5)  # 随机生成一个 5 * 5 的矩阵
    mat = X.T.dot(X)  # X的转置 点乘X
    print('inv(mat):
    ', inv(mat))  # 求方阵的逆  原阵乘逆阵为单位矩阵
    print('mat.dot(inv(mat)):
    ', mat.dot(inv(mat)))  # 矩阵点乘 自己的逆阵
    
    q, r = qr(mat)
    print('q:
    ', q)
    print('r:
    ', r)
    

    常用函数表

  • 相关阅读:
    sss
    sss
    maven tomcat jstl 异常
    第1章 预备知识
    第2章 存储管理
    第8章 虚拟机字节码执行引擎
    第23章 Spring MVC初体验
    第1章 预备知识
    第5章 Java中的锁
    第13章 线程安全与锁优化
  • 原文地址:https://www.cnblogs.com/Mrzhang3389/p/9684761.html
Copyright © 2011-2022 走看看