x是从0到1的n个值的列表,其中使用行空间创建。 Y = X ^ 3。如何创建一个条件函数,只要x <0.5,就将值保持为0.01。 n可以变化。有没有办法直接通过矩阵运算循环遍历所有值?
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
答案 0 :(得分:2)
您可以使用以下方式轻松完成此操作:
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. ])