[英]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
其他包如numpy
或pandas
将向量化运算符,所以像这样的东西会做
>>> 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 中进行等效操作,您可以通过列表推导式或使用 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.