python - 如果不满足条件,如何不产生任何结果,而不是使用 np.where 进行替代?

标签 python numpy

我有一个关于 numpy.where 的问题。除了条件之外,np.where 的参数还需要 x 和 y。

  • x:当条件为真时,会产生 x。
  • y:在不满足条件的情况下生成/使用 y。

相关代码部分可能如下所示:

BypassZero = np.where(f > 0.00000000000001, f, -8.5)

我的问题是:是否可以告诉 np.where y 应该使用“nothing”而不是 -8.5?示例:如果条件是仅使用高于 0.00000000000001 的值(如上面的代码所示),并且一行(多个值)中的一个数值不满足此条件,则 np.where 应忽略此步骤并直接跳转到该行中的下一个数值,而不是使用 -8.5。

最佳答案

编辑:在对我的原始答案的评论提出一些建议以及OP的澄清之后,任务是选择那些满足条件且不包含其他值的值。

例如如果我想选择所有偶数并排除所有奇数,我会这样做:

import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
evens = x[x % 2 == 0]  # select even numbers only
print(evens)

输出:

[ 2  4  6  8 10]

就您而言:

result = f[f > 0.00000000000001]

正如 Timus 指出的,np.where 根本没有必要。

关于python - 如果不满足条件,如何不产生任何结果,而不是使用 np.where 进行替代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70198422/

相关文章:

python - 在转换时将元组扩展为参数?

python - 从 float32 转换为 float 时如何保持精度?

python - numpy 中不同矢量化方法的性能

python - 将索引和数据放入字典

Python多索引: Changing second level of index names

python - 如何获取以小写字母开头的行的索引列表?

python , Pandas : Return only those rows which have missing values

python - 如何获得与 Matlab 的 'special' (mldivide) 运算符使用 numpy/scipy 返回的欠定线性系统相同的 `A\b` 解?

python - 用不同的随机数替换二维数组中的值

python - Python 类型错误 : str and int