首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用另一个数组中的键快速、有效地对一个数组中选择的值进行平均

,可以通过以下步骤实现:

  1. 遍历第一个数组,将选择的值存储到一个新的数组中。
  2. 遍历第二个数组,将其作为键,对应的值作为计数器存储到一个字典(或哈希表)中。
  3. 遍历新数组,使用字典中的计数器对每个值进行累加。
  4. 遍历字典,将每个键对应的值除以计数器得到平均值。

这样可以快速、有效地对选择的值进行平均,而不需要对整个数组进行排序或重复计算。

以下是一个示例代码(使用Python语言):

代码语言:txt
复制
def average_with_keys(arr1, arr2):
    selected_values = [arr1[i] for i in arr2]  # 选择的值存储到新数组中
    counter = {}  # 字典用于存储计数器

    for key in arr2:
        if key in counter:
            counter[key] += 1
        else:
            counter[key] = 1

    for value in selected_values:
        if value in counter:
            counter[value] += 1
        else:
            counter[value] = 1

    result = {}
    for key, count in counter.items():
        result[key] = key / count

    return result

这个方法适用于需要对一个数组中选择的值进行平均的场景,例如统计用户的平均购买金额、平均评分等。腾讯云提供了多种云计算产品,例如云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品进行开发和部署。

请注意,由于要求不能提及特定的云计算品牌商,上述代码中没有包含腾讯云相关产品的介绍链接地址。如需了解腾讯云的产品和服务,请访问腾讯云官方网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 Python 波形数组进行排序

在本文中,我们将学习一个 python 程序来波形数组进行排序。 假设我们采用了一个未排序输入数组。我们现在将对波形输入数组进行排序。...− 创建一个函数,通过接受输入数组数组长度作为参数来波形数组进行排序。 使用 sort() 函数(按升序/降序列表进行排序)按升序输入数组进行排序。...使用 for 循环遍历直到数组长度(步骤=2) 使用“,”运算符交换相邻元素,即当前元素及其下一个元素。 创建一个变量来存储输入数组使用 len() 函数(返回对象项数)获取输入数组长度。...例 以下程序使用 python 内置 sort() 函数波形输入数组进行排序 − # creating a function to sort the array in waveform by accepting...在这里,我们没有使用排序函数;相反,我们只是使用 for 循环来迭代给定数组元素,平均而言,该数组具有 O(N) 时间复杂度。

6.8K50

Gas 优化:Solidity 使用动态数组

理想情况下,这些数据存储在一个小数值动态数组。 在这篇文章例子,我们研究了在 Solidity 中使用动态数组是否比引用数组或类似解决方案在处理这些小数值时更高效。...讨论 当我们有一个由已知小数值数组(长度小)组成数据时,我们可以在 Solidity 中使用一个数值数组(Value Arrays),在这篇文章[6],我们提供并测量了 Solidity 数值数组...让我们比较一下动态数组与固定长度数组以及 Solidity 自己固定长度数组和动态数组。 我们也将比较两个结构体,一个结构体包含一个数组长度和一个固定数组另一个结构体包含一个数值数组。...可能动态数组 在 Solidity ,只有 storage 类型有动态数组。memory 类型数组必须有固定长度,并且不允许使用push()来附加元素。...注意uint1d248数值数组。它让我们可以有效地将多达248个1位元素(代表布尔)编码到1个 EVM 字

3.3K30

NumPy广播:不同形状数组进行操作

因此,需要对阵列进行快速,鲁棒和准确计算,以对数据执行有效操作。 NumPy是科学计算主要库,因为它提供了我们刚刚提到功能。在本文中,我们重点介绍正在广播NumPy特定类型操作。...图中所示拉伸只是概念上。NumPy实际上并不对标量进行复制,以匹配数组大小。相反,在加法中使用原始标量值。因此,广播操作在内存和计算方面非常高效。 我们还可以对高维数组一个标量进行加法操作。...在下面的示例,我们有一个形状为(3,4)二维数组。标量被加到数组所有元素。...换句话说,如果维度大小不相等,则其中之一必须为1。 考虑以下示例。我们有几个二维数组。二维尺寸相等。但是,它们一个在第一维度上大小为3,而另一个在大小上为1。...第一个数组形状是(4,1),第二个数组形状是(1,4)。由于在两个维度上都进行广播,因此所得数组形状为(4,4)。 ? 当两个以上数组进行算术运算时,也会发生广播。同样规则也适用于此。

3K20

Java获取一个数组最大和最小

1,首先定义一个数组; //定义数组并初始化 int[] arr=new int[]{12,20,7,-3,0}; 2,将数组一个元素设置为最大或者最小; int max=arr[0...];//将数组一个元素赋给max int min=arr[0];//将数组一个元素赋给min 3,然后对数组进行遍历循环,若循环到元素比最大还要大,则将这个元素赋值给最大;同理,若循环到元素比最小还要小...,则将这个元素赋值给最小; for(int i=1;i<arr.length;i++){//从数组第二个元素开始赋值,依次比较 if(arr[i]>max){//如果arr[i]大于最大...int[] arr=new int[]{12,20,7,-3,0}; int max=arr[0];//将数组一个元素赋给max int min=arr[0];//将数组一个元素赋给...min for(int i=1;i<arr.length;i++){//从数组第二个元素开始赋值,依次比较 if(arr[i]>max){//如果arr[i]大于最大,就将arr

6.3K20

2021-04-17:给定一个整型数组 arr,数组每个都为正数,表示完成

2021-04-17:给定一个整型数组 arr,数组每个都为正数,表示完成一幅画作需要时间,再 给定 一个整数 num,表示画匠数量,每个画匠只能画连在一起画作。...所有的画家 并行工作,请 返回完成所有的画作需要最少时间。【举例】arr=3,1,4,num=2。最好分配方式为第一个画匠画 3 和 1,所需时间为 4。第二个画匠画 4,所需时间 为 4。...如果分配方式为第一个画匠画 3,所需时 间为 3。第二个画 匠画 1 和 4,所需时间为 5。那么最少时间为 5,显然没有第一 种分配方式好。所以返回 4。arr=1,1,1,4,3,num=3。...最好分配方式为第一个画匠画前三个 1,所需时间为 3。第二个画匠画 4,所需时间 为 4。 第三个画匠画 3,所需时间为 3。返回 4。 福大大 答案2021-04-17: 二分法。...分割数组最大

1.1K20

在PHP中使用SPL库对象方法进行XML与数组转换

在PHP中使用SPL库对象方法进行XML与数组转换 虽说现在很多服务提供商都会提供 JSON 接口供我们使用,但是,还是有不少服务依然必须使用 XML 作为接口格式,这就需要我们来 XML...今天,我们介绍使用 SPL 扩展库一些对象方法来处理 XML 数据格式转换。首先,我们定义一个类,就相当于封装一个操作 XML 数据转换类,方便我们将来使用。...如果将对象看做是一个数组的话,每个属性就是它键值。 在对每个键值遍历时,我们判断当前对应内容是否是数组或者是对象。如果不是这两种形式内容的话,就直接将当前内容添加为当前结点子结点。...总结 这篇文章内容是简单学习了一个 SPL 扩展库对于 XML 操作两个对象使用。通过它们,我们可以方便转换 XML 数据格式。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/在PHP中使用SPL库对象方法进行XML与数组转换

6K10

2022-05-06:给你一个整数数组 arr,请你将该数组分隔为长度最多为 k 一些(连续)子数组。分隔完成后,每个子数组所有都会变为该子数组

2022-05-06:给你一个整数数组 arr,请你将该数组分隔为长度最多为 k 一些(连续)子数组。分隔完成后,每个子数组所有都会变为该子数组最大。...返回将数组分隔变换后能够得到元素最大和。 注意,原数组和分隔后数组对应顺序应当一致,也就是说,你只能选择分隔数组位置而不能调整数组顺序。...解释: 因为 k=3 可以分隔成 1,15,7 2,5,10,结果为 15,15,15,9,10,10,10,和为 84,是该数组所有分隔变换后元素总和最大。...若是分隔成 1 2,5,10,结果就是 1, 15, 15, 15, 10, 10, 10 但这种分隔方式元素总和(76)小于上一种。 力扣1043. 分隔数组以得到最大和。...答案2022-05-06: 从左往右尝试模型。0到i记录dpi。 假设k=3,分如下三种情况: 1.i单个一组dpi=i+dpi-1。 2.i和i-1一组。 3.i和i-1和i-2一组。

1.6K10

面试算法,在绝对排序数组快速查找满足条件元素配对

一个含有多个元素数组,有多种排序方式。它可以升序排列,可以降序排列,也可以像我们以前章节说过,以波浪形方式排序,现在我们要看到一种是绝对排序。...例如下面的数组就是绝对排序: A:-49, 75, 103, -147, 164,-197,-238,314,348,-422 给定一个整数k,请你从数组找出两个元素下标i,j,使得A[i]+A[j...对于这个题目,我们曾经讨论过当数组元素全是整数时情况,要找到满足条件配对(i,j),我们让i从0开始,然后计算m = k - A[i],接着在(i+1, n)这部分元素使用折半查找,看看有没有元素正好等于...m,如果在(i+1,n)存在下标j,满足A[j] == m 那么我们就可以直接返回配对(i,j),这种做法在数组元素全是正数,全是负数,以及是绝对排序时都成立,只是在绝对排序数组进行二分查找时...使用这种查找办法,算法时间复杂度是O(n*lg(n))。 上面算法形式很紧凑,无论数组全是正数,负数,还是绝对排序时,都有效。

4.3K10
领券