Python将函数应用于小于0的数组的所有元素

时间:2017-10-24 19:00:43

标签: python arrays numpy matrix

我想将一个函数应用于我的矩阵的所有元素,这些元素小于或等于0,作为元素的参数。

   my_matrix[my_matrix <= 0] = 3 * (func(my_input_here))

例如,如果我们有

[0 3 5
-3 5 3
 9 2 -1]

我想将-3替换为3 * func(-3),将-1替换为3 * func(-1)

1 个答案:

答案 0 :(得分:1)

我正在创建一个虚拟函数,它只增加1.并且还在变量#fit a JAGS model jags.model = " model{ # priors b1 ~ dnorm(0, .001) b2 ~ dnorm(0, .001) tau <- pow(sigma, -2) sigma ~ dunif(0, 100) #normal model for (i in 1:N){ y[i] ~ dnorm(y.hat[i], tau) y.hat[i] <- b1*x1[i] + b2*x2[i] } } #end model " #setup jags data as a list jd <- list(y=plot_data$y, x1=plot_data$x1, x2=plot_data$x2, N=length(plot_data$y)) library(runjags) #run jags model jags.out <- run.jags(jags.model, data=jd, adapt = 1000, burnin = 1000, sample = 2000, n.chains=3, monitor=c('b1', 'b2')) summary(jags.out) 中模拟矩阵。

m

输出:

m = [[0, 3, 5],
    [-3, 5, 3],
     [9, 2, -1]]

def my_func(x):
    return x + 1

m = [[element if element > 0 else 3 * my_func(element) for element in row ] for row in m] 
print(m)