python numpy 学习笔记(10)

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
#   广义逆矩阵(非方阵的逆矩阵)


2.关于array数组的相关操作:

# -*- 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)
#   抽取符合条件的元素



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值