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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章