2015-10-17 90 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.  ])