1

我的程序需要找到向量中所有项的乘积,保留一行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:无效条目消息。当我将 替换为i1 时,代码工作正常。有没有办法在保留for循环的同时执行此操作?

4

1 回答 1

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是一个有效的索引(如果不这样做,您将获得整个数组的乘积)。

于 2013-10-23T06:22:01.453 回答