下面的矩阵是单数,并且AFAIK尝试将其求反应导致

numpy.linalg.linalg.LinAlgError: Singular matrix

但是我得到了一些输出矩阵。请注意,输出矩阵是无意义的结果,因为它具有一行0(这是不可能的,因为矩阵的逆本身应该是可逆的)!

我是否在这里缺少与浮点精度有关的东西,或者与真实逆相反的伪逆的计算?

$ np.__version__

'1.13.1'

$ np.linalg.inv(np.array([[2,7,7],[7,7,7],[8,7,7]]))

array([[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],

[ 3.43131400e+15, -2.05878840e+16, 1.71565700e+16],

[ -3.43131400e+15, 2.05878840e+16, -1.71565700e+16]])```

参考方案

在后台,NumPy和SciPy(以及许多其他软件)都退回到线性方程求解器的LAPACK实现(或C转换)(在本例中为GESV)。

由于GESV首先执行LU分解,然后检查U矩阵的对角线是否有确切的零,因此很难在分解中达到理想的零。这就是为什么您不会遇到奇异矩阵错误的原因。

除此之外,如果要与其他矩阵相乘,则永远不要求逆矩阵,而是求解AX=B。

在SciPy自版本0.19起,scipy.linalg.solve使用GESVX的“专家”驱动程序GESV,该驱动程序还会报告条件编号并发出警告。如果缺少奇点,这类似于matlab的行为。

In [7]: sp.linalg.solve(np.array([[2,7,7],[7,7,7],[8,7,7]]), np.eye(3))

...\lib\site-packages\scipy\linalg\basic.py:223: RuntimeWarning: scipy.linalg.solve

Ill-conditioned matrix detected. Result is not guaranteed to be accurate.

Reciprocal condition number: 1.1564823173178713e-18

' condition number: {}'.format(rcond), RuntimeWarning)

Out[7]:

array([[ 0.00000000e+00, -1.00000000e+00, 1.50000000e+00],

[ 3.43131400e+15, -2.05878840e+16, 1.71565700e+16],

[ -3.43131400e+15, 2.05878840e+16, -1.71565700e+16]])

numpy.savetxt“元组索引超出范围”? - python

我试图在文本文件中写几行,这是我使用的代码:import numpy as np # Generate some test data data = np.arange(0.0,1000.0,50.0) with file('test.txt', 'w') as outfile: outfile.write('…用Python计算稀疏矩阵的Cholesky分解 - python

我正在尝试实现Reinsch's Algorithm(pp 4)。由于工作矩阵是稀疏的,所以我使用的是scipy.sparse模块,但是正如您所看到的,Reinsch的算法需要稀疏矩阵的Cholesky分解(我们称其为my_matrix)才能求解某些系统,但是我不能找到与此有关的任何东西。当然,在同一算法中,我可以使用scipy.sparse.li…numpy loadtxt单行/行作为列表 - python

我只有一个数据文件,例如: 1.2 2.1 3.2 我使用numpy版本1.3.0 loadtxt加载它 a,b,c = loadtxt("data.dat", usecols(0,1,2), unpack=True) 输出是浮点数而不是数组 a = 1.2 我希望它将是: a = array([1.2]) 如果我读取了多行文件,则该文件…设置Jupyter笔记本电脑的最大内核数 - python

我与同事共享一台计算机。他们在那里运行并行计算,我需要运行Jupyter。我可能只使用几个核心,而不是全部。但是,每次运行在Jupyter中使用numpy的单元时,它都会尝试使用尽可能多的内核。在运行同事的计算时,Python占用了一半的内核。我试图将Jupyter进程的nice设置为19,以便其Python子进程继承niceness值,并且不尝试使用所有内…Python输出numpy数组作为base64编码的字符串而不是jpg - python

我有一个简单的Python3脚本,它使用以下命令从numpy数组创建图像...cv2.imwrite("finalImage.jpg", numpyArray) 这可以正常工作,但是现在我希望输出的是base64编码的字符串,而不是jpg图像。我知道我可以将输出的jpg图像转换为base64字符串,但是有一种方法可以直接执行此操作,因此我…

python numpy逆_numpy.linalg.inv返回奇异矩阵的逆函数 - python相关推荐

  1. python numpy逆_关于python:为什么numpy和scipy中的矩阵求逆函数对于大的二次矩阵返回不同的结果?...

    可以说我定义了一个大的二次矩阵(例如150x150). 一次它是一个numpy数组(矩阵A),一次是scipy稀疏数组(矩阵B). 1 2 3 4 5 6 7 8 9 10 11 12import n ...

  2. python numpy逆_Python使用numpy计算矩阵特征值、特征向量与逆矩阵

    原标题:Python使用numpy计算矩阵特征值.特征向量与逆矩阵 Python扩展库numpy.linalg的eig()函数可以用来计算矩阵的特征值与特征向量,而numpy.linalg.inv() ...

  3. python numpy逆_python-具有numpy的N * M * M张量的矢量化(部分)逆

    所以我有一个张量的索引为a [n,i,j]的维度为(N,M,M)的张量,我想为N中的每个n求M * M方阵部分的值. 例如,假设我有 In [1]: a = np.arange(12) a.shape ...

  4. python numpy库_numpy库学习总结(基础知识)

    最近在学习Python中OpenCV库,学习花了很多时间,发现基础知识很重要,尤其是numpy这个库,在进行程序开发时,处理大量类似数组这种数据结构时,它的重要性等同于Python中的列表,像前篇我们 ...

  5. python numpy pandas 书 全_夯基固本学Python—Numpy与Pandas

    数据分析绝对绕不过的三个包是numpy.scipy和pandas.numpy是Python的数值计算扩展,专门用来处理矩阵,它的运算效率比列表更高效.scipy是基于numpy的科学计算包,包括统计. ...

  6. python numpy np.convolve()函数(返回两个一维序列的离散线性卷积)

    文章目录 from numpy.core.numeric() 计算流程 from numpy.core.numeric() def convolve(a, v, mode='full'):" ...

  7. python numpy遍历_NumPy 迭代数组

    NumPy 迭代数组 NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式. 迭代器最基本的任务的可以完成对数组元素的访问. 接下来我们使用 arange() ...

  8. python numpy库是第三方库吗_浅谈python的第三方库——numpy(终)

    本文作为numpy系列的总结篇,继续介绍numpy中常见的使用小贴士 1 手动转换矩阵规格 转换矩阵规格,就是在保持原矩阵的元素数量和内容不变的情况下,改变原矩阵的行列数目.比如,在得到一个5x4的矩 ...

  9. Python NumPy教程

    Welcome to Python NumPy tutorial. In our previous tutorial, we learned about Python switch case. In ...

最新文章

  1. .NET Core开发日志——配置
  2. scale 和 transform-origin 实现线条从左侧进入,右侧离开效果
  3. assm的结构_Oracle ASSM三级位图块结构
  4. iview render的时候可以写控件的基本格式
  5. [转]浅谈MS-SQL锁机制
  6. 高通发布一系列新型WiFi芯片:兼容WiFi 6技术
  7. 第20章 TCP的成块数据流
  8. c语言s_gets函数作用,C语言中gets_s(),gets(),fgets()函数的比较。
  9. 听北大公开课庄明科老师《大学生职业素养提升》第一集:《自我效能感》的笔记
  10. Asis CTF 2016 b00ks(堆溢出NULL byte off-by-one)
  11. Unity网格编程篇(二) 非常详细的Mesh编程入门文章
  12. PCB设计时如何选择合适的叠层方案
  13. 【Proteus仿真】Arduino UNO + PCF8563 +LCD1602时间显示
  14. oracle变mysql,Oracle变换成为Mysql注意事项
  15. 如何安装和使用A-ops工具?
  16. 【vue】详情页数据请求
  17. 如何在wpf中使用winform控件或者winform的自定义控件
  18. FPGA开发过程中常见的一些文件后缀
  19. GNU Make 使用手册(中译版)
  20. 步进电机、步进电机驱动器常见问题解答

热门文章

  1. Lucene提供的条件判断查询[转]
  2. 计算机网络——TCP/IP参考模型和五层参考模型
  3. Mybatis中example的使用
  4. 【剑指offer】面试题57 - II:和为s的连续正数序列(Java)
  5. MySQL小问题:导入employee测试数据
  6. Leetcode--90. 子集Ⅱ
  7. nacicat for mysql查询_navicat for mysql怎么用
  8. 记录用户转成超级用户的文件名字_一分钟了解Linux用户
  9. html 链接section,HTML section 标签
  10. keras.metrics中的accuracy