我必须了解poly1d()函数的工作原理,尤其是在删除元素的情况下。 这里是一个例子:
x = np.array([1,2,3,4])
pol = np.poly1d(x)
print(pol)
for i in range(x.size):
pol = np.poly1d(np.delete(x,i))
print(pol)
输出:
3 2
1 x + 2 x + 3 x + 4
2
2 x + 3 x + 4
2
1 x + 3 x + 4
2
1 x + 2 x + 4
2
1 x + 2 x + 3
这里发生了什么,为什么? pol正在更改,但不会删除索引i处的值。
答案 0 :(得分:0)
In [301]: x = np.array([1,2,3,4])
...: pol = np.poly1d(x)
...: print(pol)
...: for i in range(x.size):
...: pol = np.poly1d(np.delete(x,i))
...: print(pol)
...:
3 2
1 x + 2 x + 3 x + 4
2
2 x + 3 x + 4
2
1 x + 3 x + 4
2
1 x + 2 x + 4
2
1 x + 2 x + 3
这将显示一个具有[1,2,3,4],[2,3,4],[1,3,4]和[1,2,3]系数的多边形。这有什么神秘之处?