Python:使用where条件

时间:2017-06-24 07:47:16

标签: python python-3.x numpy

是否可以使用Python中的single where条件计算以下内容。我无法做到这一点。

x = np.arange(10)

如果x的元素小于3,则将其替换为3.如果x的元素大于7,则将其替换为7.

我的尝试如下,但我想知道是否可以在一行代码中完成

x= np.where(x<3 ,3,x) x = np.where(x>7,7,x)

对不起,如果看起来很基本的话。但我刚刚开始使用numpy

3 个答案:

答案 0 :(得分:1)

您可以使用numpy.clip()

在一行中完成
x = np.arange(10)
np.clip(x, 3, 7)
print(x)

#[3, 3, 3, 3, 4, 5, 6, 7, 7, 7]

答案 1 :(得分:0)

使用numpy.clip()

In [115]: a = np.arange(10)

In [116]: np.clip(a, 3, 7)
Out[116]: array([3, 3, 3, 3, 4, 5, 6, 7, 7, 7])

答案 2 :(得分:-1)

x= np.where(x<3, 3, np.where(x>7, 7, x))