测试如下代码
import math
import numpy
fun = lambda x: math.sqrt(x)
numpy.fromfunction(fun,(5,))
运行如上代码会报错:
TypeError: only size-1 arrays can be converted to Python scalars
经过测试fun这个匿名函数是没有问题的,并且通过def方式定义的函数用numpy.fromfunction运行时同样由此问题,此外还测试了math.factorial阶层函数同样报错;还测试过numpy.math.factorial仍然是报错!
经过长时间测试,发现numpy.fromfunction貌似只支持由加减乘除四则运算构成的函数,复杂一点的函数比如math.exp,math.log等都会报错,同时上网搜索了不少关于numpy.fromfunction的例程,发现这些例程都是些简单的加减乘除运算~
请问:
1. 这个是代码哪里出了Bug还是numpy.fromfunction本身不支持复杂点的数学运算?
2. 如果numpy.fromfunction本身不支持复杂数学函数,那么有没有其他办法根据fun函数对矩阵下标进行运算创建一个矩阵?(速度要快,for循环之类速度达不到要求)
import math
import numpy
fun = lambda x: math.sqrt(x)
numpy.fromfunction(fun,(5,))
运行如上代码会报错:
TypeError: only size-1 arrays can be converted to Python scalars
经过测试fun这个匿名函数是没有问题的,并且通过def方式定义的函数用numpy.fromfunction运行时同样由此问题,此外还测试了math.factorial阶层函数同样报错;还测试过numpy.math.factorial仍然是报错!
经过长时间测试,发现numpy.fromfunction貌似只支持由加减乘除四则运算构成的函数,复杂一点的函数比如math.exp,math.log等都会报错,同时上网搜索了不少关于numpy.fromfunction的例程,发现这些例程都是些简单的加减乘除运算~
请问:
1. 这个是代码哪里出了Bug还是numpy.fromfunction本身不支持复杂点的数学运算?
2. 如果numpy.fromfunction本身不支持复杂数学函数,那么有没有其他办法根据fun函数对矩阵下标进行运算创建一个矩阵?(速度要快,for循环之类速度达不到要求)