我的程序需要找到保存一行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
循环的同时执行此操作?
最佳答案
无需删除任何内容。只需将两个子乘积(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
是有效索引(如果不这样做,您将获得整个数组的乘积)。
关于python - 迭代删除 numpy 数组中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19534100/