2015-10-17 85 views
0

x是一个从0到1的n值的列表,它使用行空间创建。 Y = X^3。如何创建一个条件函数,使得每当x的值为0时,该值都保持为0.01。 n可以变化。有没有办法做到这一点,而不必通过矩阵操作直接循环所有值?python中的条件矩阵操作

import numpy as np 
n=100 
x = np.linspace(0, 1, n) 
y = np.power(x,3) 
# for all values where x<0.5: y=0.01 

回答

1

可以使用做到这一点很容易:

y[x<0.5] = 0.01 

样本输出:

In [1]: import numpy as np 

In [2]: n=10 

In [3]: x = np.linspace(0, 1, n) 

In [4]: y = np.power(x,3) 

In [5]: x 
Out[5]: 
array([ 0.  , 0.11111111, 0.22222222, 0.33333333, 0.44444444, 
     0.55555556, 0.66666667, 0.77777778, 0.88888889, 1.  ]) 

In [6]: y 
Out[6]: 
array([ 0.  , 0.00137174, 0.01097394, 0.03703704, 0.0877915 , 
     0.17146776, 0.2962963 , 0.47050754, 0.70233196, 1.  ]) 

In [7]: y[x<0.5] = 0.01 

In [8]: y 
Out[8]: 
array([ 0.01  , 0.01  , 0.01  , 0.01  , 0.01  , 
     0.17146776, 0.2962963 , 0.47050754, 0.70233196, 1.  ])