繁体   English   中英

julia 中的“.==”及其在 python 中的等价物是什么?

[英]what is ".==" in julia and its equivalent in python?

我是 julia 的新手,我正在努力将 julia 代码重写为 python 代码。 我看到一些代码使用.==表达式。 我不明白这是什么意思。 所以我在 web 上搜索,但找不到答案。 有人能告诉我 julia 中的.==和 python 中的等价物是什么吗?

fyi,它是这样写的。

x = sum(y .== 0)  # y is array

这是一个矢量化点运算,用于将运算符应用于数组。 您可以通过列表理解对 python 中的一维列表执行此操作,但在这里您似乎只是在计算所有零,所以

>>> y = [0,1,1,1,0]
>>> sum(not bool(v) for v in y)
2

其他包如numpypandas将向量化运算符,所以像这样的东西会做

>>> import numpy as np
>>> y = np.array([0,1,1,1,0])
>>> (y == 0).sum()
2
>>>
>>> import pandas as pd
>>> df=pd.DataFrame([[0,1,2,3], [1,2,3,0], [2,3,4,0]])
>>> (df==0).sum()
0    1
1    0
2    0
3    2
dtype: int64
>>> (df==0).sum().sum()
3

它能做什么:

这里的点用于向量化操作: dot call

它基本上将您选择的操作应用于向量的每个元素(请参阅点运算符)。

因此,在您的情况下, y.== 0将检查向量 y 的每个元素是否等于 0,这意味着 x 将是 y 中等于 0 的值的数量。

相当于 Python:

至于如何在 python 中进行等效操作,您可以通过列表推导式或使用 numpy 等库“手动”进行操作。示例:

x = sum([i == 0 for i in y])

要么

import numpy as np
x = sum(np.array(y) == 0)
# or
x = (np.array(y) == 0).sum()

我是 julia 的新手,我正在努力将 julia 代码重写为 python 代码。 我看到了一些使用.==表达式的代码。 我不明白这是什么意思。 所以我在 web 上搜索了它,但找不到答案。 有人能告诉我 julia 中的.==和 python 中的等价物是什么吗?

仅供参考,它是这样写的。

x = sum(y .== 0)  # y is array

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM