我生成了一个数组列表,它们是一组有限差分:我们在带有增量的列中看到它们。
现在的任务。用户指定未来多项式的阶数,这决定了对应的列。其中,差异的数量是不同的:我需要获取某个列中最后一个数字(最后一个差异)的索引。我写了一个错误的代码:
ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
编码:
def func(x):
return np.sin(x)
def poly(order):
# строим колонки X и Y:
x_i_list = [round( (0.1*np.pi*i), 4 ) for i in range(0, 11)]
y_i_list = []
for x in x_i_list:
y_i = round( (func(x)), 4 )
y_i_list.append(y_i)
# получаем дельты:
n=order
if n < len(y_i_list):
result = [ np.diff(y_i_list, n=d) for d in np.arange(1, len(y_i_list)) ]
print(result)
else:
print(f'Определите порядок полинома меньше {len(y_i_list)}')
index = result.index(result[order-1][-1])
return index
func(3) # задается порядок полинома 3,
# то есть нужна разность по колонке с 3-й дельтой.
# Там индекс последней разности 7

任何 numpy 数组(或者更确切地说,在任何索引对象中)的最后一个元素的索引始终可以作为
last_index=len(arr)-1. 尽管在 python 中,由于 for 语句的适当语法,是否需要使用这样的构造是非常值得怀疑的。