我想以特定数量增加数组中每个元素的频率?

I want to increase the frequency of each element of an array with particular amount?

这是示例数组;

我希望它通过常数增加每个元素的频率(这里取 4);

[64,64,64,64,45,45,45,45,56,56,56,56,67,67,67,67,78,78,78,78 , 12, 12, 12, 12, 112, 112, 112, 112, 232, 232, 232, 232]

谁能帮我解决这个问题?请不要对其进行硬编码

您可以使用 np.repeat 来实现:

>>> a.repeat(4)
array([ 64,  64,  64,  64,  45,  45,  45,  45,  56,  56,  56,  56,  67,
        67,  67,  67,  78,  78,  78,  78,  12,  12,  12,  12, 112, 112,
       112, 112, 232, 232, 232, 232])

如果你在创建数组的时候知道展开的频率是多少,可以先用列表推导来展开:

import numpy as np
a_prime = [64, 45, 56, 67, 78, 12, 112, 232]
a = np.array([x for x in a for i in range(4)])

如果您需要更改数量以扩大它,您可以将其包装在一个函数中:

def expand_frequency(lst, n):
    return [x for x in lst for i in range(n)]

a = np.array(expand_frequency(a_prime, 4))

我不确定这是否正是您要找的东西,但它应该作为一个起点。