我的程序需要找到向量中所有项的乘积,保存一行i
,这由for循环确定。 numpy.delete
函数不接受i
作为输入,只接受一个数字。有解决方法吗?
示例:
for i in range(some_range):
arr=[some vector]
section=np.delete(arr,i,axis=0)
return prod(section)
这将返回ValueError
:无效的条目消息。将i
替换为1时,代码工作正常。在保留for
循环时是否有任何方法可以执行此操作?
答案 0 :(得分:1)
无需删除任何内容。只需将两个子产品(i
之前的元素和i
之后的元素)相乘:
In [10]: import numpy as np
In [11]: arr = np.arange(1, 10)
In [12]: i = 3
In [13]: np.prod(arr[:i]) * np.prod(arr[i+1:])
Out[13]: 90720
与原始代码一样,您需要确保i
是有效索引(如果不是,则获得整个数组的产品)。