numpy基础(part10)--通用函数
生活随笔
收集整理的這篇文章主要介紹了
numpy基础(part10)--通用函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習筆記,這個筆記以例子為主。
開發工具:Spyder
文章目錄
- 通用函數
- 數組的剪裁
- 數組的壓縮
- 加法、乘法通用函數
- 除法通用函數
- 三角通用函數
- 合成方波
通用函數
數組的剪裁
- 語法
- 圖示
- 舉個例子
代碼:
import numpy as np a = np.array([[1, 3, 5], [2, 4, 6],[3, 9, 6]])print(a) print(a.clip(min = 3, max = 6))結果:
[[1 3 5][2 4 6][3 9 6]] [[3 3 5][3 4 6][3 6 6]]數組的壓縮
- 語法
- 例子
代碼:
import numpy as np a = np.array([[1, 3, 5], [2, 4, 6],[3, 9, 6]])print(a) print(a.compress(a % 3 == 0))結果:
報錯,我們輸入的數組必須是一位數組。
代碼2:
import numpy as np a = np.arange(1, 20)print(a) print(a.compress(a % 3 == 0))結果2:
[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19] [ 3 6 9 12 15 18]備注:and無法進行數組與數組之間的運算。但是我們可以用np.all進行數組之間的與運算。
代碼3:
import numpy as np a = np.arange(1, 20)print(a) print(a.compress(np.all([a % 2 == 0, a % 3 == 0], axis = 0)))結果3:
[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19] [ 6 12 18]加法、乘法通用函數
- 語法
- 例子1(相加、累加和、累加)
代碼:
import numpy as np a = np.arange(1, 7) b = np.arange(5, 11)print('a:', a, '\n', 'b:', b) print('a + b:', np.add(a, b)) print(np.add.reduce(a)) print(np.add.accumulate(a))結果:
a: [1 2 3 4 5 6] b: [ 5 6 7 8 9 10] a + b: [ 6 8 10 12 14 16] 21 [ 1 3 6 10 15 21]- 例子2(外和)
代碼:
import numpy as np a = np.arange(1, 7) print(np.add.outer([10, 20, 30], a))結果:
[[11 12 13 14 15 16][21 22 23 24 25 26][31 32 33 34 35 36]]- 例子3(外積)
代碼:
import numpy as np a = np.arange(1, 7) print(np.outer([10, 20, 30], a))結果:
[[ 10 20 30 40 50 60][ 20 40 60 80 100 120][ 30 60 90 120 150 180]]- 例子4(累乘、累乘和)
代碼:
import numpy as np a = np.arange(1, 7) print(np.prod(a)) print(np.cumprod(a))結果:
720 [ 1 2 6 24 120 720]除法通用函數
- 語法
- 例子
代碼:
import numpy as np a = np.array([10, 20, 8, 9, 9]) b = np.array([3, -3, 4, 5, -5]) print(np.divide(a, b)) print(np.floor_divide(a, b)) print(np.ceil(a/b)) print(np.trunc(a/b)) print(np.round(a/b))結果:
[ 3.33333333 -6.66666667 2. 1.8 -1.8 ] [ 3 -7 2 1 -2] [ 4. -6. 2. 2. -1.] [ 3. -6. 2. 1. -1.] [ 3. -7. 2. 2. -2.]三角通用函數
- 語法
- 傅里葉定理
法國科學家傅里葉提出,任何一條周期曲線,無論多么跳躍或不規則,都能表示成一組光滑正弦曲線疊加之和。
合成方波
方波長啥樣?如下圖所示:
一個方波由如下參數的正弦波疊加而成:
曲線疊加的越多,越接近方波。
- 例子(模擬合成方波)
代碼:
import numpy as np import matplotlib.pyplot as mpx = np.linspace(-2*np.pi, 2*np.pi, 1000) y = np.zeros(1000) n = 1000 for i in range(1, n+1):y += 4 / ((2 * i - 1) * np.pi) \* np.sin((2 * i - 1) * x)mp.plot(x, y)mp.show()結果:
這里,我們將range(1, n + 1)改為range(1, 4),只繪制3條正弦曲線,并合成:
import numpy as np import matplotlib.pyplot as mpx = np.linspace(-2*np.pi, 2*np.pi, 1000) y = np.zeros(1000) n = 1000 for i in range(1, 4):y_temp = 4 / ((2 * i - 1) * np.pi) \* np.sin((2 * i - 1) * x)mp.plot(x, y_temp)y += y_tempmp.plot(x, y, linestyle = '--',linewidth = 4,label = 'Synthetic Wave') mp.legend(loc = 0) mp.show()圖像:
總結
以上是生活随笔為你收集整理的numpy基础(part10)--通用函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6死20余伤!广州宝马X3撞人案动机公开
- 下一篇: 别光着ASML 专家称光刻机只占20%芯