1.矩阵的相关操作
求逆,求解线性方程组,求解特征值,求解特征向量,奇异值分解
# -*- coding:utf-8 -*-
from numpy import *
A = mat("0 1 2; 1 0 3; 4 -3 8")
inverse = linalg.inv(A)
print inverse
print A.I
print A * inverse
# 求解逆矩阵的两种方式
det = linalg.det(A)
print det
# 求解矩阵的行列式
B = mat("1 -2 1;0 2 -8;-4 5 9")
b = array([0, 8, -9])
x = linalg.solve(B, b)
print "solve:", x
# 求解线性方程组
print "check:", dot(B, x)
# 点积检查
C = mat("-3 2; 1 0")
print "Eigenvalues", linalg.eigvals(C)
# 获得特征值
eigenvalues, eigenvectors = linalg.eig(C)
print eigenvalues, eigenvectors
# 获得特征值和特征向量 '''
D = mat("4 11 14;8 7 -2")
U, Sigma, V = linalg.svd(D, full_matrices=False)
# U V 是正交矩阵
# Sigma是奇异值矩阵的对角元素
Sigma = diag(Sigma)
# 使用diag函数,得到对应数组的对角矩阵
print U * Sigma * V
pseudoinv = linalg.pinv(D)
print pseudoinv
# 广义逆矩阵(非方阵的逆矩阵)
# -*- coding: utf-8 -*-
from numpy import *
random.seed(42)
complex_numbers = random.random(5) + 1j * random.random(5)
# 使用随机数种子生成复数
print "Complex numbers\n", complex_numbers
print "Sorted\n", sort_complex(complex_numbers)
# 使用sort_complex对于数组排序,先实部后虚部的顺序
a = array([3, 5, 1, 8, 0, 2, 4, 7, 9, 6])
print argmax(a) # 最大项的下标
print argmin(a) # 最小项的下标
print argsort(a) # 按照下标排序
print argwhere(a <= 4) # 小于4的数组元素的下标
a = sort(a) # 将数组排序
indise = searchsorted(a, [-2, 8, 18]) # 找到插入合适的下标
a = insert(a, indise, [-2, 8, 18]) # 在合适下标处插入
print a
condition = (a % 2) == 0
# 设置条件
print extract(condition, a)
# 抽取符合条件的元素