我想用base x创建一个对数函数,然后绘制它:y = logx10。 所以我用:
y= math.log(10,x)
但是它返回了一个错误说:只有length-1数组可以转换为Python标量。 那么用base x创建日志函数的正确方法是什么?
答案 0 :(得分:0)
由于您需要2个值列表(x, y)
,因此您必须先生成x
列表,然后使用它生成y
列表:
import math
import random
length = 10
rand_min = 0.02
rand_max = 0.91
x = [random.uniform(rand_min, rand_max) for r in xrange(length)]
y = [math.log(10, _x) for _x in x]
您有x
和y
列表,长度均为length
。
答案 1 :(得分:0)
获得“更平滑”线的简单方法是增加点数(即使length
更大。)
此外,您可能希望在计算和绘图之前对x列表进行排序:
length = 100 # or higher
:
x = sorted([random.uniform(rand_min, rand_max) for r in xrange(length)])
y = [math.log(10, _x) for _x in x]