python 中带有布尔值的向量方程

Equation of vectors with booleans in python

我正在尝试创建一个方程式,您可以在其中输入一个数组或向量,它包含一个布尔函数。对于满足此条件的数组中的项 (bool=True),则方程继续以一种方式求解以生成另一个数组。

我在这里附上了在 R 中工作的类似代码,并想在 python

中做类似的事情
a <- c(0,1,2,3,4,5)
b <- c(1,1,2,2,3,3)

a-b+5*(a==0|b==0)

它的输出是一个向量:

[1] 4 0 0 1 1 2

有谁知道如何在 python3 中使用 numpy 做类似的事情?

很多很多方法。 这是一个:

a = range(6)
b = [1, 1, 2, 2, 3, 3]
r = [ai - bi + 5*(ai==0 or bi==0) for ai, bi in zip(a,b)]

一种使用方式 numpy:

import numpy as np
a = np.arange(6)
b = np.repeat(np.arange(1,4),2)
a-b+5*(np.equal(a,0) | np.equal(b,0))

numpy:

import numpy as np
a = np.array([0,1,2,3,4,5])
b = np.array([1,1,2,2,3,3])
a-b+5*((a==0)|(b==0))
#> array([4, 0, 0, 1, 1, 2])