gpt4 book ai didi

python - 等价于 numpy 数组中的计数列表函数

转载 作者:太空狗 更新时间:2023-10-30 01:14:16 28 4
gpt4 key购买 nike

我有一个形状为 (100000,2) 的矩阵 listScore:我想计算所有相同的行。例如,如果 listScore 是一个列表列表,我会简单地做:

listScore.count([2,0])

寻找所有等于 [2,0] 的列表。我显然可以转换我的 listScore 的类型,使其成为一个列表,但我想保持 numpy 的有效性。有什么函数可以用来做同样的事情吗?

提前致谢

最佳答案

如果 listScore 是一个 NumPy 数组,你可以这样做 -

count = np.all(listScore == np.array([2,0]),axis=1).sum()

如果数组始终是一个 2 列数组,那么您可以分别用 20 比较这两列的性能并得到计数 -

count = ((listScore[:,0] ==2) & (listScore[:,1] ==0)).sum()

如果你是np.einsum的粉丝,你可能想试试这个twisted -

count = (~np.einsum('ij->i',listScore != [2,0])).sum()

另一个以性能为导向的解决方案可能是 cdist from scipy -

from scipy.spatial.distance import cdist
count = (cdist(listScore,np.atleast_2d([2,0]))==0).sum()

关于python - 等价于 numpy 数组中的计数列表函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31560850/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com