【发布时间】:2017-09-12 20:00:18
【问题描述】:
有一个简单的函数,它打算接受一个标量参数,但也适用于一个 numpy 矩阵。为什么函数fun 对矩阵有效?
>>> import numpy as np
>>> def fun(a):
return 1.0 / a
>>> b = 2
>>> c = np.mat([1,2,3])
>>> c
matrix([[1, 2, 3]])
>>> fun(b)
0.5
>>> fun(c)
matrix([[ 1. , 0.5 , 0.33333333]])
>>> v_fun = np.vectorize(fun)
>>> v_fun(b)
array(0.5)
>>> v_fun(c)
matrix([[ 1. , 0.5 , 0.33333333]])
似乎fun 以某种方式被矢量化,因为显式矢量化函数v_fun 在矩阵c 上的行为相同。但是他们在标量b 上得到不同的输出。有人可以解释一下吗?谢谢。
【问题讨论】:
标签: python function numpy matrix scalar