Numpy學習筆記(四)

2022-08-16 18:30:13 字數 2450 閱讀 8534

前段時間又重新回顧了線性代數的課本,感悟頗多。才漸漸體會到,大學數學課程的安排,分割為微積分、線性代數和概率論是多麼的合理!

矩陣,說它多重要都不為過,尤其是大型複雜的計算。numpy對於python的擴充套件,相當程度體現在對於矩陣運算的支援上。

example1

建立矩陣

# -*-coding:utf-8-*-

import numpy as np

import matplotlib.pyplot as plt

# 建立矩陣

a = np.mat('1 2 3; 4 5 6; 7 8 9')

print "creation from string", a

# t屬性即為轉置矩陣

print "transpose", a.t

# i屬性為逆矩陣

print "inverse", a.i

# 通過numpy陣列建立

print "creation from array", np.mat(np.arange(9).reshape(3, 3))

結果如下:

從已有矩陣建立新矩陣

# 從已有矩陣建立新矩陣

a = np.eye(2)

print 'a', a

b = a * 2

print "b", b

print "compound matrix\n", np.bmat("a b; a b") # 有點像分塊矩陣

結果如下:

除法運算

# 除法運算

a = np.array([2, 6, 5])

b = np.array([1, 2, 3])

print "divide", np.divide(a, b), np.divide(b, a) # 相當於"/"

print "true divide", np.true_divide(a, b), np.true_divide(b, a)

print "floor divide", np.floor_divide(a, b), np.floor_divide(b, a) # 相當於"//"

結果如下:

注意:這裡尤為需要注意的是divide和floor divide,兩者的區別在於分子分母有浮點數時的計算方式不同

example4

模運算# 模運算

a = np.arange(-4, 4)

print "a", a

print "remainder", np.remainder(a, 2) # 相當於"%", mod

print "fmod", np.fmod(a, 2) # fmod的區別在於處理負數的方式

結果如下:

example5

建立斐波那契數列

# 建立斐波那契數列

f = np.matrix([[1, 1], [1, 0]]) # 特殊的矩陣

print "f", f

print "8th fibonacci", (f**7)[0, 0]

結果如下:

其實很簡單!

example6

利薩如曲線

x = a sin(at+n/2)

y = b sin(bt)

這裡我們令a=b=1

# 繪製利薩如曲線

# 初始化相關引數

a = 9

b = 8

n = np.pi

t = np.linspace(-np.pi, np.pi, 201) # 產生-pi~pi均勻分布的201個點

x = np.sin(a * t + n / 2)

y = np.sin(b * t)

plt.plot(x, y)

plt.show()

結果如下:

這裡想要表達的是numpy內建的函式非常的好用!

總結:這一次的練習還算簡單,當然這只是入門,為接下來的工作打好基礎。下一次要學習的,是numpy中的一些經常用到的模組,不得不說,numpy的功能的確強大,matplotlib的製圖能力亦然。

源**:

Numpy學習筆記(四)陣列屬性

一 陣列屬性 usr bin env python coding utf 8 author jia666 time 2021 2 20 16 44 import numpy as np a np.array 1,2,3 4,5,6 7,8,9 todo 1 檢視a的值 print a 1 2 3 4...

numpy的學習筆記(四) 便捷函式

第四章 便捷函式 1 協方差 np.cov a,b 2 對角線元素 covariance.diagonal 3 矩陣跡 covariance.trace 4 相關係數 np.correoef a,b 5 標準差 a.std 6 方差 a.var 7 多項式擬合 擬合 np.polyfit t,var...

Numpy學習筆記

測試檔案裡的資料排列型別最好是有規律的,不可以隨便,否則將發生一些錯誤 genfromtxt函式 genfromtxt函式建立陣列 資料 genfromtxt主要執行兩個迴圈運算。第乙個迴圈將檔案的每一行轉換成字串序列。第二個迴圈將每個字串序列轉換為相應的資料型別。genfromtxt能夠考慮缺失的...