Cal*_*uin 13 python python-3.x julia
我是 julia 的新手,我正在努力将 julia 代码重写为 python 代码。我看到了一些使用.==表达式的代码。我无法理解这是什么意思。所以我在网上搜索它,但找不到答案。有人可以告诉我.==julia 中的内容及其在 python 中的等价物吗?
仅供参考,它是这样写的。
x = sum(y .== 0) # y is array
Run Code Online (Sandbox Code Playgroud)
tde*_*ney 11
这是一个矢量化点操作,用于将运算符应用于数组。您可以通过列表推导对 python 中的一维列表执行此操作,但在这里您似乎只是在计算所有零,所以
>>> y = [0,1,1,1,0]
>>> sum(not bool(v) for v in y)
2
Run Code Online (Sandbox Code Playgroud)
其他包喜欢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
Run Code Online (Sandbox Code Playgroud)
这里的点用于向量化操作:点调用
它基本上将您选择的操作应用于向量的每个元素(请参阅点运算符)。
因此,在您的情况下,y .== 0将检查向量 y 的每个元素是否等于 0,这意味着 x 将是 y 等于 0 的值的数量。
至于如何在python中做等价的,你可以通过列表理解“手工”完成,或者使用诸如numpy之类的库。例子:
x = sum([i == 0 for i in y])
Run Code Online (Sandbox Code Playgroud)
或者
import numpy as np
x = sum(np.array(y) == 0)
# or
x = (np.array(y) == 0).sum()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
499 次 |
| 最近记录: |