当前位置: 首页 > 知识库问答 >
问题:

Numpy数组元素等价检查[重复]

慕容灿
2023-03-14

好的,我对python和numpy还比较陌生,我想做的是取一个随机生成的整数数组,检查每个数字是否多次出现,例如如果b=numpy.array([3,2,33,6,6])它会告诉我6出现两次。或者如果a=numpy.array([22,21888])则每个整数都是不同的。

共有1个答案

章涵容
2023-03-14

您可以使用计数器检查给定数字在列表或任何iterable对象中出现的次数:

In [2]: from collections import Counter

In [8]: b=numpy.array([3,2,33,6,6])

In [9]: Counter(b)
Out[9]: c = Counter({6: 2, 33: 1, 2: 1, 3: 1})

In [14]: c.most_common(1)
Out[14]: [(6, 2)] # this tells you what is most common element 
                  # if instead of 2 you have 1, you know all elements 
                  # are different.

类似地,您可以为第二个示例执行以下操作:

In [15]: a=numpy.array([22,21,888])

In [16]: Counter(a)
Out[16]: Counter({888: 1, 21: 1, 22: 1})

另一种方法是使用set,并将生成的set长度和数组的长度进行比较。

In [20]: len(set(b)) == len(b)
Out[20]: False

In [21]: len(set(a)) == len(a)
Out[21]: True

希望这能有所帮助。

 类似资料:
  • 主要内容:1. numpy.resize(),2. numpy.append(),3. numpy.insert(),4. numpy.delete(),5. numpy.argwhere(),6. numpy.unique()本节重点介绍 NumPy 数组元素的增删改查操作,主要有以下方法: 数组元素操作方法 函数名称 描述说明 resize 返回指定形状的新数组。 append 将元素值添加到数组的末尾。 insert 沿规定的轴将元素值插入到指定的元素前。 delete 删掉某个轴上的子数

  • 问题内容: 假设我有一个整数的NumPy数组,如下所示: 我想找到数组的开始和结束索引,其中值的值大于重复的x倍(例如5倍)。因此,在上述情况下,其值为22和6。重复的22的开始索引为3,结束的索引为8。重复6相同。Python中是否有特殊的工具对您有所帮助?否则,我将遍历数组索引以获取索引,并将实际值与前一个进行比较。 问候。 问题答案: 使用@WarrenWeckesser在此处给出的和方法来

  • 主要内容:JavaTuples 元组检查元素的方法,JavaTuples 元组检查元素的示例JavaTuples 元组检查元素的方法 每个元组都提供实用方法来以与集合类似的方式检查其元素。 contains(element) : 检查元素是否存在。 containsAll(collection) : 检查元素是否存在。 indexOf(element) : 如果存在,则返回第一个元素的索引,否则返回 -1。 lastIndexOf(element) : 如果存在,则返回最后一个元素的索引

  • 问题内容: 我现在用来检查此功能的函数如下: 有用。我正在寻找的是是否有更好的方法来做到这一点。 问题答案: ECMAScript 2016 包含一种专门用于解决问题的数组方法,因此现在是首选方法。 _从2018年7月开始,如果您需要支持IE,则可以在polyfill中使用几乎所有 主流 浏览器。 编辑:请注意,如果数组中的项目是一个对象,则返回false。这是因为相似的对象是JavaScript

  • 问题内容: NumPy具有有效的功能/方法来标识对象中非零元素的索引。什么是最有效的方式来获得该元素的索引 做 具有零值? 问题答案: numpy.where()是我的最爱。

  • 问题内容: 我试图创建一种方法来检查数组中是否增加了元素。如果所有元素按升序排列,则应返回True。当我比较arr [i + 1]时,我得到了一个界外异常。关于如何使它起作用的任何想法。 问题答案: 我建议你这样写你的方法 我会帮你的 返回正确的结果(当您不应该返回true时) 考虑超越 避免不必要的循环