以下内容有什么区别:
a = np.array([2,3,4]) b = np.array([2,7,8]) if a.any() == b.all(): print('yes')
字符串和
a = np.array([2,3,4]) b = np.array([2,7,8]) if a.any() == b.any(): print('yes')
型在这两种情况下,'yes'都被打印出来。
'yes'
ma8fv8wu1#
any()和all()用于布尔数组。如果数组中有任何值等于True,则any()返回True。如果数组中的所有值都等于True,则all()返回True。对于整数/浮点数,功能类似,不同的是,如果在数组中找不到值0,则返回True。在您的示例中,由于a.any()和a.all()都将返回True,因此a.any() == a.all()。尝试执行以下代码,看看它在实践中是如何工作的。
any()
all()
True
0
a.any()
a.all()
a.any() == a.all()
a = np.asarray([1,2,3]) b = np.asarray([-1,0,1]) c = np.asarray([True, False]) print(a.any()) print(a.all()) print(b.any()) print(b.all()) print(c.any()) print(c.all())
字符串
ggazkfy82#
在像你这样的1D numpy整数数组中,当且仅当 some 元素不为零时,any将给予True,而当且仅当 all 元素不为零时,all将给予True。所以你的第一段代码翻译成:“如果问题”在a中是否有非零元素?“的答案与”b的所有元素都非零吗?"的答案相同,则打印“是”。第二个进入:“如果问题”在a中是否有非零元素?“的答案与”在b中是否有非零元素?“的答案相同,则打印”是“。
any
all
a
b
5gfr0r5j3#
我认为最初的帖子是由于在比较两个表时,对逻辑操作(例如==)和方法np.any()和np.all()的组合存在误解。根据@user2653663的回答,我认为值得通过以下示例来完成它:
import numpy as np a = np.asarray([1,2,3]) b = np.asarray([1,0,1]) print((a == b).any()) print((a == b).all()) True False
字符串第一次打印将返回True,因为比较操作“cell by cell”在两个表中找到了至少一个相等的单元格;在我们的例子中是a[0] == b[0]。第二次打印返回False,因为不是所有的单元格都是相等的。你可以很容易地想象为什么这样做:
print(a == b) [ True False False]
型
3条答案
按热度按时间ma8fv8wu1#
any()
和all()
用于布尔数组。如果数组中有任何值等于True
,则any()
返回True
。如果数组中的所有值都等于True
,则all()
返回True
。对于整数/浮点数,功能类似,不同的是,如果在数组中找不到值0
,则返回True
。在您的示例中,由于a.any()
和a.all()
都将返回True
,因此a.any() == a.all()
。尝试执行以下代码,看看它在实践中是如何工作的。
字符串
ggazkfy82#
在像你这样的1D numpy整数数组中,当且仅当 some 元素不为零时,
any
将给予True
,而当且仅当 all 元素不为零时,all
将给予True
。所以你的第一段代码翻译成:
“如果问题”在
a
中是否有非零元素?“的答案与”b
的所有元素都非零吗?"的答案相同,则打印“是”。第二个进入:
“如果问题”在
a
中是否有非零元素?“的答案与”在b
中是否有非零元素?“的答案相同,则打印”是“。5gfr0r5j3#
我认为最初的帖子是由于在比较两个表时,对逻辑操作(例如==)和方法np.any()和np.all()的组合存在误解。根据@user2653663的回答,我认为值得通过以下示例来完成它:
字符串
第一次打印将返回True,因为比较操作“cell by cell”在两个表中找到了至少一个相等的单元格;在我们的例子中是a[0] == b[0]。第二次打印返回False,因为不是所有的单元格都是相等的。你可以很容易地想象为什么这样做:
型