一、向量化函数
向量化函数是指将输入参数为向量的函数,通过对向量进行操作,得到输出为向量的函数。在数学和计算机科学领域中,向量化函数通常用于加速计算和提高代码的可读性。
1.向量化函数展示
import pandas as pd
import numpy as np
df=pd.DataFrame({'a':[10,20,30],'b':[20,30,40]})
df
def avg_1(x,y):
return (x+y)/2
avg_1(df['a'],df.b)
def avg_2(x,y):
#如果x列传入20,就返回空
if x==20: #此处报错,x是向量,20是标量,他们无法做判断
return np.NaN
return (x+y)/2
avg_2(df['a'],df.b)
此处报错原因其实就是向量和标量之间无法比较,需要通过以下向量化函数解决该问题,
方法一:np.vectorize(要被向量化的函数)
# 6. 使用 np.vectorize 将函数向量化.
# 写法1: 通过 np.vectorize(要被向量化的函数名) 方式实现.
avg_2_mod_vec = np.vectorize(avg_2_mod)
avg_2_mod_vec(df['a'], df['b'])
方法二:装饰器方式,即在那个有问题的函数的上一行@np.vectorize即可
#方法二: 通过装饰器方式实现,再要被向量化函数的上加上@np.vectoriz