gpt4 book ai didi

python - 尝试索引数组时,具有多个元素的数组的真值不明确

转载 作者:IT老高 更新时间:2023-10-28 21:16:25 26 4
gpt4 key购买 nike

如果 var(另一个 numpy 数组)中的元素是 >=0 和 <=.1,我正在尝试将 rbs 的所有元素放入一个新数组中。但是,当我尝试以下代码时,出现此错误:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

rbs = [ish[4] for ish in realbooks]
for book in realbooks:
var -= float(str(book[0]).replace(":", ""))
bidsred = rbs[(var <= .1) and (var >=0)]

关于我做错了什么有什么想法吗?

最佳答案

正如我在对上一个答案的评论中告诉你的,你需要使用:

c[a & b]

c[np.logical_and(a, b)] 

原因是 Python 使用 and 关键字在两个 bool 值之间进行测试。数组怎么可能是 bool 值?如果 75% 的项目是 True,是 True 还是 False?因此,numpy 拒绝比较两者。

因此,您要么必须使用逻辑函数逐个元素地比较两个 bool 数组(np.logical_and),要么使用二元运算符 & .

此外,出于索引目的,您确实需要一个与您要索引的数组大小相同的 bool 数组。 它必须是一个数组,你不能使用 True/False 列表来代替: 原因是使用 bool 数组告诉 NumPy 返回哪个元素。如果您使用 True/False 列表,NumPy 会将其解释为 1/0 列表为整数,即索引,这意味着您要么得到数组的第二个或第一个元素。不是你想要的。

现在,您可以猜到,如果您想使用两个 bool 数组 ab 进行索引,请选择 ab 是 True,你会使用

c[np.logical_or(a,b)]

c[a | b]

关于python - 尝试索引数组时,具有多个元素的数组的真值不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12647471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com