首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单独检查数组元素的真值

单独检查数组元素的真值
EN

Stack Overflow用户
提问于 2020-08-15 08:16:58
回答 1查看 55关注 0票数 0

我的代码是:-

代码语言:javascript
复制
import numpy as np
def f(x):
    if x<=0.5:
        return 0
    else:
        return 1
        
X=np.array([0.1,0.2,0.6,0.5,0.01,1])
print(f(X))

此代码给出一个错误。

代码语言:javascript
复制
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

但我不知道a.any()a.all()对我有什么用处。我要输出的是:-

代码语言:javascript
复制
[0,0,1,0,0,1]

我可以使用for循环,但是是否有任何快捷语法使我只需一次就可以得到所需的输出?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-15 08:26:12

您可以使用vectorize - https://numpy.org/doc/stable/reference/generated/numpy.vectorize.html

代码语言:javascript
复制
In [1]: import numpy as np

In [2]: X=np.array([0.1,0.2,0.6,0.5,0.01,1])

In [3]: f = lambda x: 0 if x<=0.5 else 1

In [4]: func = np.vectorize(f)

In [5]: func(X)
Out[5]: array([0, 0, 1, 0, 0, 1])

where - https://numpy.org/doc/stable/reference/generated/numpy.where.html

代码语言:javascript
复制
In [7]: np.where(X<=0.5, 0,1)
Out[7]: array([0, 0, 1, 0, 0, 1])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63423989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档