python - numpy:用于数组划分的简明条件语法

标签 python syntax numpy

假设一个简单的一维 numpy 数组:

>>> x = np.array([1,3,5,0,3,2])

现在假设我要执行操作 1.0/x。我可以用 numpy 做到这一点:

>>> 1.0/x
array([ 1.        ,  0.33333333,  0.2       ,         inf,  0.33333333,
    0.5       ])

这里的问题是原始元素值 0 的无穷大 (inf) 结果,因为 1.0/0 似乎返回无穷大而不是未定义的行为。

我想提供我自己的自定义值,而不是无穷大,出现这些除以 0 的情况。虽然我知道这可以使用循环来完成,但我想知道是否有适合这种操作的惯用语法。

有一个相关问题here ,但它只处理 if something: (do this) else: (do nothing) 场景,而我的问题是 if something: (do this) else: (do that) 情景。

最佳答案

您以后可以随时对其进行修补:

a = 1.0/x
inf_ind = np.isinf(a)
a[inf_ind] = your_value

a[inf_ind] = f(x[inf_ind])

它的优点是不会妨碍优化的 numpy 方法。

关于python - numpy:用于数组划分的简明条件语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14493531/

相关文章:

python - 如何在 python numpy 中并行化求和计算?

python - 如何创建一个新的 python tkinter 窗口,使其完全适合可用的桌面区域,但未最大化?

python - 如何将输入传递给 Keras 中的 2D Conv?

python - Openpyxl图表 - 来自随机未连接单元格的数据系列可能吗?

haskell - 'do' block 中的最后一条语句必须是表达式

javascript - 了解方法签名语法

Mysql:如何在查询中重用计算

python - 用python写入大量文件,最后明显变慢

python - 当 import_array 不在同一翻译单元中时出现段错误

Python os.system 内联工作但不作为变量