036、向量化函数
本文最后更新于 258 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com

向量化函数

自定义的 sinc 函数:

import numpy as np

def sinc(x):
    if x == 0.0:
        return 1.0
    else:
        w = np.pi * x
        return np.sin(w) / w

作用于单个数值:

sinc(0.0)
1.0
sinc(3.0)
3.8981718325193755e-17

但这个函数不能作用于数组:

x = np.array([1,2,3])
sinc(x)
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

 in ()
      1 x = np.array([1,2,3])
----> 2 sinc(x)

 in sinc(x)
      2 
      3 def sinc(x):
----> 4     if x == 0.0:
      5         return 1.0
      6     else:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

可以使用 numpyvectorize 将函数 sinc 向量化,产生一个新的函数:

vsinc = np.vectorize(sinc)
vsinc(x)
array([  3.89817183e-17,  -3.89817183e-17,   3.89817183e-17])

其作用是为 x 中的每一个值调用 sinc 函数:

import matplotlib.pyplot as plt
%matplotlib inline

x = np.linspace(-5,5,101)
plt.plot(x, vsinc(x))
[]


png

因为这样的用法涉及大量的函数调用,因此,向量化函数的效率并不高。

谨此笔记,记录过往。凭君阅览,如能收益,莫大奢望。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇