python - 迭代删除 numpy 数组中的行

标签 python for-loop numpy

我的程序需要找到保存一行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/

相关文章:

javascript - style.display 为 null - 尝试遍历数组并更改显示属性

python - ZMQ 发布/订阅可靠/可扩展设计

python - 在 Python 中如何从使用函数列表过渡到使用类?

excel - For-Loop 在第一轮退出

python - 将 alpha 添加到 .dds 文件

python - 从 dask.Series 列表高效创建 dask.array

python - 使用 Pandas 处理 GPS 数据

python - 为函数提供多个参数

python - 使用图表构建交易平台 - 对 Python GUI 库的建议

java - 让 Java Robot 输入 for 循环中的内容