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])
我正在尝试创建一个方程式,您可以在其中输入一个数组或向量,它包含一个布尔函数。对于满足此条件的数组中的项 (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])