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

具有重复索引的增量Numpy数组

方嘉言
2023-03-14
问题内容

我有一个Numpy数组和一个索引列表,我想将其值加1。该列表可能包含重复的索引,我希望增量可以随每个索引的重复次数而缩放。没有重复,命令很简单:

a=np.zeros(6).astype('int')
b=[3,2,5]
a[b]+=1

通过重复,我想出了以下方法。

b=[3,2,5,2]                     # indices to increment by one each replicate
bbins=np.bincount(b)
b.sort()                        # sort b because bincount is sorted
incr=bbins[np.nonzero(bbins)]   # create increment array
bu=np.unique(b)                 # sorted, unique indices (len(bu)=len(incr))
a[bu]+=incr

这是最好的方法吗?假设np.bincountnp.unique操作将导致相同的排序顺序是否有风险?我是否缺少一些简单的Numpy操作来解决此问题?


问题答案:

做完之后

bbins=np.bincount(b)

为什么不这样做:

a[:len(bbins)] += bbins

(为进一步简化而编辑。)



 类似资料:
  • 我想写一个函数,根据提供的bin概率,从训练集中随机选取元素。我将集合索引划分为11个单元,然后为它们创建自定义概率。 我得到以下错误: 我觉得这很奇怪,因为我已经检查了我创建的索引数组。它是一维的,它是整数,它是标量。 我错过了什么? 注意:我试图通过传递

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

  • 我试图做为。具有和其他在中具有。这是我的代码: 我得到这个错误: 什么,我哪里做错了?

  • 问题内容: 我有一个numpy值数组: 我想从数组中删除具有重复值的行。例如,上述数组的结果应为: 我不确定如何使用numpy有效地做到这一点而无需循环(数组可能会很大)。有人知道我该怎么做吗? 问题答案: 这是一个选择:

  • 问题内容: 我正在设置2D数组中多个元素的值,但是我的数据有时包含给定索引的多个值。 似乎总是分配了“更高”的值(请参见下面的示例),但是是否可以保证此行为,或者是否有机会获得不一致的结果?我怎么知道我可以按照我在矢量化分配中想要的方式来解释“稍后”? 也就是说,在我的第一个示例中,肯定会始终包含该内容,而在第二个示例中,它将打印吗? 很简单的例子: 另一个例子 问题答案: 在NumPy 1.9和

  • 问题内容: 当我尝试仅获取像这样的数组的第一个元素时 我得到这个错误 我想找到一种在仍然使用切片的情况下执行此操作的方法,因为完整的代码会打开,并使用两列(从1到N之间不等)的所有列读取许多不同的文件。 问题答案: 您的数组只有 一个 维度:其形状为。然而,你的切片 指定选择 2米 的尺寸。这导致NumPy引发错误。 要从中获取第一个元素,只需编写即可(此处仅选择一个维度)。 看另一个问题,如果您