gpt4 book ai didi

python - 在特定索引处将 numpy 数组的元素增加 1(用于对 astropy 表进行分组)

转载 作者:太空宇宙 更新时间:2023-11-03 14:08:20 24 4
gpt4 key购买 nike

这可能不是标题中最好的描述,但我希望可以在下面描述我的问题。它实际上有两个部分。

我想做的最终事情是在星形表中将某些时间组合在一起 - 因为每次进入特定组的值都不相同,我不相信我可以给出group_by() 中的列名方法。

因此,我要做的是生成一个数组,描述每次与哪个组相关联,以便我可以将其传递给 group_by()。我可以通过执行来获得 bin 边缘,例如(10 是任意的),

>>> np.where(np.diff(table['Times']) > 10)[0]
array([ 2, 8, 9, 12])

假设表格的长度为 15。我想知道的是如何使用上面的数组来创建下面的数组而不必使用循环

array([0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 3, 3, 3, 4, 4])

这样当我将该数组放入 group_by() 方法时,它会根据这些 bin 边缘对表格进行分组。

或者,如果有更好的方法根据时间范围对 astropy 表进行分组。

最佳答案

这听起来像 np.digitize 应该做你想做的。使用 arr 代替您的表格,尝试

arr = np.array([1,2,3,15, 16, 17, 17, 18, 19, 30,41,42, 43, 55, 56])
bin_edges = arr[np.where(np.diff(arr) > 10)[0]]
indices = np.digitize(arr, bin_edges, right=True)
print indices

关于python - 在特定索引处将 numpy 数组的元素增加 1(用于对 astropy 表进行分组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41522071/

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