相关疑难解决方法(0)

python中'和'(布尔)与'&'(按位)之间的区别.为什么列表与numpy数组的行为存在差异?

是什么解释了列表与numpy.arrays上布尔运算和按位运算的行为差异?

我对在python中正确使用' &'vs' and' 感到困惑,如下面的简单示例所示.

mylist1 = [True,  True,  True, False,  True]
mylist2 = [False, True, False,  True, False]

>>> len(mylist1) == len(mylist2)
True

# ---- Example 1 ----
>>> mylist1 and mylist2
[False, True, False, True, False]
# I would have expected [False, True, False, False, False]

# ---- Example 2 ----
>>> mylist1 & mylist2
TypeError: unsupported operand type(s) for &: 'list' and 'list'
# Why not just like example 1?

>>> import numpy as np …
Run Code Online (Sandbox Code Playgroud)

python bit-manipulation numpy boolean-expression ampersand

124
推荐指数
5
解决办法
8万
查看次数

在numpy数组中组合逻辑语句AND

当两个条件True在矩阵中时,选择元素的方法是什么?在R中,基本上可以组合布尔的向量.

所以我的目标是:

A = np.array([2,2,2,2,2])
A < 3 and A > 1  # A < 3 & A > 1 does not work either
Run Code Online (Sandbox Code Playgroud)

Evals to:ValueError:具有多个元素的数组的真值是不明确的.使用a.any()或a.all()

它应该评估为:

array([True,True,True,True,True])
Run Code Online (Sandbox Code Playgroud)

我的解决方法通常是将这些布尔向量相加并等于2,但必须有更好的方法.它是什么?

python arrays numpy

5
推荐指数
2
解决办法
5009
查看次数