精华内容
下载资源
问答
  • python线性代数

    千次阅读 2020-10-28 20:43:29
    np.array([[],[]]) np.zeros() np.linalg.inv() np.mat()array转矩阵后可以用*直接做矩阵乘法

    np.array([[],[]])
    np.zeros()
    np.linalg.inv()
    np.mat()array转矩阵后可以用*直接做矩阵乘法

    展开全文
  • python 线性代数

    千次阅读 2015-01-17 22:22:57
    matlab 能做的,python 都能做 向量 python中的vector一般由numpy的array结构表示。 自然,向量的运算与array的运算是一样的,但是要区分向量的内积和array间的乘法。 In [1]: import numpy as np In [2]: x = np....

    matlab 能做的,python 都能做

    向量

    python中的vector一般由numpy的array结构表示。

    自然,向量的运算与array的运算是一样的,但是要区分向量的内积和array间的乘法。

    In [1]: import numpy as np
    
    In [2]: x = np.ones(3)            # Vector of three ones
    
    In [3]: y = np.array((2, 4, 6))   # Converts tuple (2, 4, 6) into array
    
    In [4]: x + y
    Out[4]: array([ 3.,  5.,  7.])
    
    In [5]: 4 * x
    Out[5]: array([ 4.,  4.,  4.])
    In [6]: np.sum(x * y)          # 向量内积 Inner product of x and y
    Out[6]: 12.0
    
    In [7]: np.sqrt(np.sum(x**2))  # Norm of x, take one
    Out[7]: 1.7320508075688772
    
    In [8]: np.linalg.norm(x)      # Norm of x, take two
    Out[8]: 1.7320508075688772

    矩阵

    矩阵就是多维向量组。

    In [1]: import numpy as np
    
    In [2]: A = ((1, 2),
       ...:      (3, 4))
    
    In [3]: type(A)
    Out[3]: tuple
    
    In [4]: A = np.array(A)
    
    In [5]: type(A)
    Out[5]: numpy.ndarray
    
    In [6]: A.shape
    Out[6]: (2, 2)
    In [8]: A = np.identity(3)
    
    In [9]: B = np.ones((3, 3))
    
    In [10]: 2 * A
    Out[10]:
    array([[ 2.,  0.,  0.],
           [ 0.,  2.,  0.],
           [ 0.,  0.,  2.]])
    
    In [11]: A + B
    Out[11]:
    array([[ 2.,  1.,  1.],
           [ 1.,  2.,  1.],
           [ 1.,  1.,  2.]])
    矩阵乘法由np.dot(A, B)   计算,要区别它与A*B的不同。

    解线性方程:

    在scipy.linalg 中提供的函数的底层代码都是由优化后的Fortran代码组成。

    In [9]: import numpy as np
    
    In [10]: from scipy.linalg import inv, solve, det
    
    In [11]: A = ((1, 2), (3, 4))
    
    In [12]: A = np.array(A)
    
    In [13]: y = np.ones((2, 1))  # Column vector
    
    In [14]: det(A)               # 求行列式          Check that A is nonsingular, and hence invertible
    Out[14]: -2.0
    
    In [15]: A_inv = inv(A)  #     求逆矩阵              Compute the inverse
    
    In [16]: A_inv
    Out[16]:
    array([[-2. ,  1. ],
           [ 1.5, -0.5]])
    
    In [17]: x = np.dot(A_inv, y)  #           解方程  Solution
    
    In [18]: np.dot(A, x)  # Should equal y
    Out[18]:
    array([[ 1.],
           [ 1.]])
    
    In [19]: solve(A, y)  # Produces same solution   解方程 
    Out[19]:
    array([[-1.],
           [ 1.]])
    在scipy中解方程Ax = y 的方法可以是x=np.dot(A_inv,y)也可以是solve(A,y)。

    常用的最小二乘解法,数学上为x = (A'*A)_inv*A'*y,scipy中提供了函数scipy.linalg.lstsq(A,y)直接求解。

    特征值与特征向量:

    In [1]: import numpy as np
    
    In [2]: from scipy.linalg import eig
    
    In [3]: A = ((1, 2),
       ...:      (2, 1))
    
    In [4]: A = np.array(A)
    
    In [5]: evals, evecs = eig(A)
    
    In [6]: evals
    Out[6]: array([ 3.+0.j, -1.+0.j])
    
    In [7]: evecs
    Out[7]:
    array([[ 0.70710678, -0.70710678],
           [ 0.70710678,  0.70710678]])
    注意evecs是两个特征向量组成的特征向量组。


    展开全文
  • python 线性代数:[18]线性规划求最优解.pdf
  • python线性代数向量

    千次阅读 2016-09-05 15:56:57
    python线性代数向量 ##-----两个向量的相加 def vector_add(v, w): """adds corresponding elements""" return [v_i + w_i for v_i, w_i in zip(v, w)] ##-----两个向量相减 def vector_sub

    python线性代数向量

    ##-----两个向量的相加
    def vector_add(v, w):
        """adds corresponding elements"""
        return [v_i + w_i
                for v_i, w_i in zip(v, w)]
    
    ##-----两个向量相减            
    def vector_subtract(v, w):
        """subtracts corresponding elements"""
        return [v_i - w_i
                for v_i, w_i in zip(v, w)]
                
          
    ##-----多个向量相加
    def vector_sum(vectors):
        """sums all corresponding elements"""
        result = vectors[0]                                # 从第一个向量开始
        for vector in vectors[1:]:                         # 之后遍历其他向量
            result = vector_add(result, vector)            # 最后计入总和
        return result
    ##或者
    def vector_sum(vectors):
        return reduce(vector_add, vectors)
        
        
    ##------向量乘以标量
    
    def scalar_multiply(c, v):
        """c is a number, v is a vector"""
        return [c * v_i for v_i in v]
        
    
    ##------一系列向量(长度相同)的均值   
    def vector_mean(vectors):
        """compute the vector whose ith element is the mean of the
        ith elements of the input vectors"""
        n = len(vectors)
        return scalar_multiply(1/n, vector_sum(vectors))
        
    ##-----向量的点乘
    def dot(v, w):
        """v_1 * w_1 + ... + v_n * w_n"""
        return sum(v_i * w_i
                   for v_i, w_i in zip(v, w))
                   
    ##----向量的平方
    def sum_of_squares(v):
        """v_1 * v_1 + ... + v_n * v_n"""
        return dot(v, v)
    
    
    ###
    import math
    
    def magnitude(v):
        return math.sqrt(sum_of_squares(v))     # math.sqrt是平方根函数
        
    
    def squared_distance(v, w):
        """(v_1 - w_1) ** 2 + ... + (v_n - w_n) ** 2"""
        return sum_of_squares(vector_subtract(v, w))
    
    def distance(v, w):
       return math.sqrt(squared_distance(v, w))
        empty


    展开全文
  • 这份讲义为初学者设计,涉及线性代数的基本概念、特殊矩阵及其应用,并提供了相应代码和图示。人工智能的基础是数学,线性代数又是其中的重要部分。然而,对于数学基础不好的人来说,「线性代数」是一...

    这份讲义为初学者设计,涉及线性代数的基本概念、特殊矩阵及其应用,并提供了相应代码和图示。

    人工智能的基础是数学,线性代数又是其中的重要部分。然而,对于数学基础不好的人来说,「线性代数」是一门非常抽象的课程。如何学习线性代数呢?这个 GitHub 项目介绍了一份入门级线性代数课程讲义,适合大学生、程序员、数据分析师、算法交易员等,使用的代码用 Python 语言写成。

    讲义大致基于以下线性代数教科书:

    • 1. Linear Algebra and Its Applications 作者:Gilbert Strang(此前,我们曾介绍过他的最新线性代数课程)

    • 2. Linear Algebra and Its Applications 作者:David Lay

    • 3. Introduction to Linear Algebra With Applications 作者:DeFranza、Gagliardi

    • 4. Linear Algebra With Applications 作者:Gareth Williams

    该讲义为初学者设置,不过它对略有线性代数和微积分知识的人也有帮助。学习者应具备 Python、NumPy、Matplotlib、SymPy 的基础知识(3 天的训练足够了)。

    为了使大家更容易地理解代码,讲义中涉及的所有代码均以直观的方式写成,而没有选择高效或专业的代码风格。

    项目作者表示:这些讲义将为学习者提供数据学习、经济计量学、数学统计学、控制论等严重依赖线性代数的学科最需要的基础知识。耐心学习完之后,你将更好地掌握线性代数的基本概念,接下来就可以学习特殊矩阵及其应用。

    讲义内容

    这份讲义共包含 19 个章节,学习者可以使用 Jupyter NBViewer 打开 notebook,或者直接下载学习。

    • 第一讲:线性方程系统

    • 第二讲:基础矩阵代数

    • 第三讲:行列式

    • 第四讲:LU 分解

    • 第五讲:向量运算

    • 第六讲:线性组合

    • 第七讲:线性无关

    • 第八讲:向量空间与子空间

    • 第九讲:基与维度

    • 第十讲:行空间、列空间与零空间

    • 第十一讲:线性变换

    • 第十二讲:特征值与特征向量

    • 第十三讲:对角化

    • 第十四讲:动力系统的应用

    • 第十五讲:内积与正交

    • 第十六讲:Gram-Schmidt 正交化过程与 QR 分解

    • 第十七讲:对称矩阵与二次型

    • 第十八讲:奇异值分解

    • 第十九讲:多变量正态分布

    打开对应的 notebook 后,学习者可以看到对线性代数基本概念的讲解,以及代码和图示等。以第十二讲「特征值与特征向量」为例,下图展示了其几何直观图:

    特征向量与特征值的几何图示。在线性变换前后方向相同的向量即为特征向量,其长度比为特征值。

    (完)
    
    展开全文
  • 想必大家都学习过线性代数这门课程,也被其中的矩阵运算弄得茶饭不思,苦不堪言,今天就带着大家用python解决矩阵运算的大难题!!!
  • 点击 机器学习算法与Python学习 ,选择加星标精彩内容不迷路这份讲义为初学者设计,涉及线性代数的基本概念、特殊矩阵及其应用,并提供了相应代码和图示。人工智能的基础是数学,线性代数又是...
  • 转载于:https://www.cnblogs.com/fanweisheng/p/11238439.html
  • 使用numpy就可以用矩阵了 虽然官方文档说了不要用这个类 原因: Despite its convenience, the use of the numpy.matrix class is discouraged, since it adds nothing that cannot be accomplished with 2D numpy...
  • python 线性代数:解多元一次方程

    万次阅读 2017-11-04 21:56:24
    因为在程序化交易策略中使用了网格算法进行交易,因为在网格中想设置动态资源大小的问题,所以就想到使用抛物线的分布方法来对网格资金配置进行分配。...如果你不是很熟悉用矩阵解方程,你需要看一下线性代数的课本。
  • python线性代数 linalg、inv、qr、det

    千次阅读 2018-07-26 22:03:35
    # -*- coding: utf-8 -*- import numpy as np from numpy.random import randn from numpy.linalg import inv, qr np.linalg.qr() 计算矩阵的QR分解。... np.linalg.inv(...
  • 现在有个需要解决的问题:我找到了一份实习工作,于是想租一个房子,最好离工作近点,但是还没毕业,学校时不时有事,还不能离学校远了;而且有时候还要去女朋友那里,她希望我就住在她附近,于是,我怎么选择房子的...
  • 先打开Python的编辑器,输入以下代码:引入numpy模块并创建两个向量x和y 分别计算两个向量的长度:长度分别为: 计算夹角的cos值:夹角的cos值为: 求夹角(弧度制):夹角求得为:(单位是pi) ...
  • Python线性代数(1)——矩阵操作

    千次阅读 2014-06-08 11:38:28
    今天是这一个系列教程的第一篇,简单介绍一下Python中是如何操作Matrix
  • 线性代数 pythonLinear Algebra is a branch of mathematics that deals with large data by the use of Vectors and Matrices. It introduces a different way of viewing and understanding large data. Matrices ...
  • 使用python线性代数Prerequisites: 先决条件: Defining Vector using Numpy使用Numpy定义向量 Property 1: 属性1: Outer product in linear algebra involves two vectors of any dimension but the order ...
  • 使用python线性代数When we flip a coin, there are two possible outcomes as head or tail. Each outcome has a fixed probability of occurrence. In the case of fair coins, heads and tails each have the ...
  • 使用python线性代数A neural network is a powerful tool often utilized in Machine Learning because neural networks are fundamentally very mathematical. We will use our basics of Linear Algebra and ...
  • python线性代数 线性无关.pdf
  • python线性代数 线性变换.pdf
  • PyArmadillo - 简化的 Python 线性代数库,强调易用性。 NumPy / SciPy 的替代品。 * 主页:https://pyarma.sourceforge.io * 文档:https://pyarma.sourceforge.io/docs.html * 错误报告:...
  • 主要介绍了Python numpy线性代数用法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Python 实现线性代数计算器.pdf
  • python线性代数 矩阵.pdf
  • Python学习线性代数——向量在Jupyter Notebook下运行的文件,内容包括行列向量的基本表示,向量的基本运算等。详情请见https://tuenity.blog.csdn.net/article/details/104070768。
  • python线性代数 解线性方程组.pdf
  • 线性代数向量乘法Prerequisite: Linear Algebra | Defining a Vector 先决条件: 线性代数| 定义向量 Linear algebra is the branch of mathematics concerning linear equations by using vector spaces and ...
  • 线性代数向量乘法Prerequisite: Linear Algebra | Defining a Vector 先决条件: 线性代数| 定义向量 Linear algebra is the branch of mathematics concerning linear equations by using vector spaces and ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,646
精华内容 12,258
关键字:

python线性代数

python 订阅