为啥用 numpy 计算 2×2 矩阵的特征向量会使我的 Python 会话崩溃?
Posted
技术标签:
【中文标题】为啥用 numpy 计算 2×2 矩阵的特征向量会使我的 Python 会话崩溃?【英文标题】:Why calculations of eigenvectors of a 2 by 2 matrix with numpy crashes my Python session?为什么用 numpy 计算 2×2 矩阵的特征向量会使我的 Python 会话崩溃? 【发布时间】:2013-10-06 08:40:20 【问题描述】:我尝试执行以下操作:
import numpy as np
from numpy import linalg as la
w, v = la.eig(np.array([[1, -1], [1, 1]]))
因此,python 会话崩溃并显示以下消息:
Illegal instruction (core dumped)
我尝试使用 scipy 而不是 numpy。结果是一样的。
【问题讨论】:
你应该检查你的 blas/lapack 安装。 “非法指令”表示您安装了支持 SSE/SSE3 的二进制文件,而您的 CPU 不支持这些功能。 【参考方案1】:我怀疑你的 python/numpy/scipy 安装有问题,因为当我尝试它时我没有问题。
Python 2.7.4 (default, Sep 26 2013, 03:20:26)
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> from numpy import linalg as la
>>> w, v = la.eig(np.array([[1, -1], [1, 1]]))
>>> w
array([ 1.+1.j, 1.-1.j])
>>> v
array([[ 0.70710678+0.j , 0.70710678+0.j ],
[ 0.00000000-0.70710678j, 0.00000000+0.70710678j]])
>>>
我建议您尝试全新安装。
【讨论】:
以上是关于为啥用 numpy 计算 2×2 矩阵的特征向量会使我的 Python 会话崩溃?的主要内容,如果未能解决你的问题,请参考以下文章