numpy提供了多项式函数

import numpy as np
# 3 * x*x*x + 2 * x*x + 5 * x + 4
y = np.poly1d([3,2,5,4])
y(2)

# 求导
dy = np.polyder(y)
# np.poly1d([9,4,5])
dy(2)

根据系数计算导数

# 输入为数组,输出为导数的数组
def my_polyder(d):
    s = len(d)
    ret = []
    for i,x in enumerate(d[0:s-1]):
        ret.append(x * (s-1-i))
    return ret

# 输入[3,2,5,4]
# 输出[9,4,5]

 随机数

# [0,1),参数是维度
np.random.rand()
np.random.rand(10)
np.random.rand(10,2)

# 标准正态分布,参数是维度
np.random.randn()
np.random.randn(10)
np.random.randn(10,2)

# 整数[low,high),用size表示维度
np.random.randint(10,21)
# 10-20间100个数
np.random.randint(10,21,100)
np.random.randint(10,21,size=100)
np.random.randint(10,21,size=(2,100))

# 浮点数, [0.0, 1.0)
np.random.random_sample()
np.random.random_sample((10,2))
# 调整范围使用 (b - a) * random_sample() + a
50*np.random.random_sample()+50

np.random.rand()与np.random.random_sample()区别在哪?