1. 程式人生 > >python學習筆記--6.python中的matlab矩陣

python學習筆記--6.python中的matlab矩陣

這是在學習Python的時候做的筆記,有些時間了,大概是按照一本挺實用的入門書籍學的,我學習程式設計的思路一般是掌握基礎的變數型別,語法-分支結構 函式呼叫 類建立 結構體定義,記錄一些簡單的例項,剩下的就是需要用什麼百度現學。

對我來說python的優勢是,沒有型別要求,不用宣告,沒有指標,萬能陣列,庫很強大。

以前已知使用matlab做矩陣的運算,現在沒想到python中也有這個庫,功能還挺全的

程式碼

from numpy import *
import numpy as np

# 兩種引用差很多 這種才能完全引用 最上面的只是函式
# 使用array函式建立時,引數必須是由方括號括起來的列表,而不能使用多個數值作為引數呼叫array。
# 可以在建立時顯式指定陣列中元素的型別 dtype 可作為可選引數 a1 = array([1, 2, 3]) a2 = array([9, 8, 7]) a3 = a1 + a2 a4 = a1 * 2 a5 = a1 ** 2 a6 = a1 * a2 # 乘法 平方 點乘 # 基本資料選擇 b1 = array([[1, 2, 3], [4, 5, 6]]) print(str(b1[0])) # 第一行 print(str(b1[0][0])) # 第一個元素 b1[0, 0]一樣的 print(b1[:, 1:]) # 選擇維度的方法同原操作型別 : 可使用變數定義 # 常用的生成矩陣函式
c1 = ones((2, 3)) # 1矩陣 c2 = zeros((2, 2)) # 0 矩陣 c3 = full((3, 4), 7) # 滿矩陣 7 c4 = eye(3) # 對角矩陣 c5 = arange(10, 30, 5) # 數列陣列 差值為5 arange(6)為[0,1,2,3,4,5] # arrange精度有限 所以使用logspace c6 = logspace(0, 1, 100, base=10) # 100個0-1的數字 基礎加10(可選引數) # random自帶許多分佈的api c7 = np.random.rand((2, 3)) # 均勻分佈隨機陣列 c8 = random.randint(1
, 100, [5, 5]) # 5*5 1-100的隨機整數 c9 = random.randn(3, 3) # 正態分佈 # 矩陣變換 # 矩陣維度變換 d1 = arange(6).reshape((2, 3)) # 產生[0,..5]變為2行3列 # 矩陣的拓展 tile x = mat([1, 2, 3]) tile(x, (2, 3)) # 拓展為2行3列 # 建立矩陣 上文的好像都是陣列。。。。 m = mat([0, 1, 2]) # 真的矩陣 取值方法只有m[0,1] print(m[0, 1]) list = [3, 4, 5, 6] # 列表可以轉換為矩陣 m = mat(list)