Python,用于数据分析的任意()方法

Python,用于数据分析的任意()方法,python,Python,我目前正在阅读一本名为《python用于数据分析》的书 有一部分是关于查找异常值的,它看起来像这样(检查代码) 虽然乍一看并不难,但它让我意识到我并不真正理解python的任何函数,尽管它看起来很简单 我查看的大多数参考资料都提到“any()是Python3中的内置函数,用于检查iterable 14的任何项是否为True。它使用一个参数iterable.”source() 在这个例子中,我理解了这个简单的定义。数字1如何是可数的?我检查了代码,它确实需要这个1。此外,python文档只提到它是

我目前正在阅读一本名为《python用于数据分析》的书

有一部分是关于查找异常值的,它看起来像这样(检查代码)

虽然乍一看并不难,但它让我意识到我并不真正理解python的任何函数,尽管它看起来很简单

我查看的大多数参考资料都提到“any()是Python3中的内置函数,用于检查iterable 14的任何项是否为True。它使用一个参数iterable.”source()

在这个例子中,我理解了这个简单的定义。数字1如何是可数的?我检查了代码,它确实需要这个1。此外,python文档只提到它是一个内置函数,它在括号中接受一个参数,该参数是一个iterable。但是,缺少有关如何将any用作下面示例中的方法的信息。

内置函数的python文档:

请有人给我点化一下好吗?(为了清楚起见,问题的主要部分用黑体字表示)


这是因为这里的
any
不是内置的,而是
numpy
one。在控制台中,请尝试:

help(any)


看看有什么不同
any
在您的情况下,是检查沿所述轴的任何值是否计算为True的轴。

您将内置函数与numpy函数混淆

它们具有相同的名称,因为它们执行相同的操作,但函数不同,需要不同的参数。
numpy数组可以是多维数组,在您的示例中,1是执行操作的轴

如果您对缺少的iterable感到困惑,请记住
numpy.any
是一个方法。第一个参数是调用方法的对象:
data.any(1)
等于
numpy.any(data,1)

例如:

>>> data
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7],
       [8, 9]])

>>> data > 4
array([[False, False],
       [False, False],
       [False,  True],
       [ True,  True],
       [ True,  True]])
没有提供轴,
any
作用于整个二维阵列

>>> (data > 4).any()
True
axis=0:
对每列执行任何
(结果是每列一个值)

axis=1:
对每行执行任何
(结果是每行一个值)


简单的回答是,问题底部代码行中的any不是内置的
any()
函数,它是一个numpy any()方法。感谢您的回答,但是在使用了any()的numpy文档后仍然存在一些混乱。在文档中,输入“a”似乎是作为括号中的参数输入的,而不是作为前缀附加到方法中。此外,它没有指定括号内数字1的任何内容。这是怎么回事?@JKong:这仍然是错误的
any
。您使用的是,而不是
numpy.any
@JKong-yup,请看user2357112所说的-如果您不使用数组对象,而是
np.any
,您需要提供数组作为第一个参数。所有答案都是有益的,但您的答案是正确的,并且直接回答了我遇到的所有困惑,非常好的答案谢谢!
>>> data
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7],
       [8, 9]])

>>> data > 4
array([[False, False],
       [False, False],
       [False,  True],
       [ True,  True],
       [ True,  True]])
>>> (data > 4).any()
True
>>> (data > 4).any(0)
array([ True,  True])
>>> (data > 4).any(1)
array([False, False,  True,  True,  True])