当前位置: 首页 > 面试题库 >

如何计算Numpy数组中某个范围内的值?

鲁博雅
2023-03-14
问题内容

我有一个NumPy值数组。我想计算在特定范围内有多少这些值,例如x <100和x>
25。我已经读过有关计数器的信息,但它似乎仅对指定值有效,对值范围无效。我已经搜索过,但是没有发现有关我的特定问题的任何信息。如果有人可以指出适当的文档,我将不胜感激。谢谢

我已经试过了

   X = array(X)
   for X in range(25, 100):
       print(X)

但这只是给我25到99之间的数字。

编辑
我正在使用的数据是由另一个程序创建的。然后,我使用脚本读取数据并将其存储为列表。然后,我获取了列表,并使用array(r)将其转到了一个数组中。

编辑

运行的结果

 >>> a[0:10]
 array(['29.63827346', '40.61488812', '25.48300065', '26.22910525',
   '42.41172923', '20.15013315', '34.95323355', '13.03604098',
   '29.71097606', '9.53222141'], 
  dtype='<U11')

问题答案:

如果您的数组被调用a,则满足的元素数25 < x < 100

((25 < a) & (a < 100)).sum()

该表达式将生成(25 < a) & (a<100)一个布尔数组,其形状aTrue所有满足条件的元素的值相同。求和此布尔阵列对待True值作为1False0



 类似资料:
  • 我参加了一个编程比赛,我无法解决问题,问题是: 给定一个n个整数的数组A,我需要计算给定范围内求逆的次数。提供一个整数m,它表示范围的数量,然后是m行,在每一行中给出两个整数li和ri。 我们必须只计算指定范围内的反转,即从li到ri(包括0)的反转(基于0的索引)。 如果 A[i] 两个元素 A[i] 和 A[j] 添加到反演中 反转是: 输入: 输出: 约束: 我知道在整个数组上计算O(nlo

  • 问题内容: 在对音频或图像阵列进行一些处理之后,需要先在一定范围内对其进行标准化,然后才能将其写回到文件中。可以这样完成: 有没有那么繁琐,方便的函数来做到这一点?似乎无关。 问题答案: 使用和可以消除中间的临时阵列,从而节省了一些内存。乘法比除法便宜,所以 比…快一点 由于我们在这里使用基本的numpy方法,因此我认为这是尽可能有效的numpy解决方案。 就地操作不会更改容器数组的dtype。由

  • 我有一个Nx2矩阵,例如: 我需要创建一个Nx3矩阵,它以以下方式反映第一个矩阵中的行之间的关系: 使用右列标识范围边界的候选对象,条件为value 此条件适用于矩阵: 到目前为止,我提出了“M[M[:,1] 到目前为止我想到的是:np。差异(M[:,0]) 这就是我被困的地方。我想用这个条件来定义一个范围的上下边界。例如: 最后,回到第一个矩阵,我想为边界内(包括边界)的每个范围添加右列值。 所

  • 问题内容: 在这里,最低年龄是10岁,因此我们首先计算范围10-15。该范围内有5个学生。对于第二个范围,我们需要找到年龄> 15(即18)。因此,第二个范围是18-23,依此类推。如果能自动计算范围并计算该范围内的数据,我将不胜感激。 问题答案: 您可以在SUM()语句中使用条件来获取该条件所在的计数。我会计算年龄在BETWEEN()必要范围内的条件。试试这个: 这只会返回一行,但是它将包含您需

  • 我的方法是生成所有素数直到(埃拉托色尼筛),并检查给定范围内的每个数是否可被素数的平方整除。这些数字的计数从范围的长度中减去,以给出平方自由数。 但是这种方法在复杂度上超时了,请建议一些其他的方法

  • 假设您有一个间隔列表,例如[(0 4),(1 3),(2 5),(2 6)]。此列表未排序。然后给您一个范围,如[1 5]。您必须返回适合范围内的间隔数。在这个问题中,它将返回2。((1 3)和(2 5)) 间隔列表保持不变,但我们最多得到100000个查询,每个查询由一个范围组成。对于每个范围查询,我们必须返回适合其中的间隔数。 在研究之后,我读到了间隔树。但是,您只能查询与任何给定范围重叠的间