Numpy 如何为数组中的每个值重复不同的次数

Numpy 如何为数组中的每个值重复不同的次数

在本文中,我们将介绍如何使用Numpy在数组中为每个值重复不同的次数。这在数据处理和数据分析中是非常有用的。

阅读更多:Numpy 教程

重复一个标量

首先,我们可以使用Numpy中的repeat函数来重复一个标量。例如,如果我们想要将标量5重复3次,我们可以这样写:

import numpy as np
a = np.repeat(5, 3)
print(a)
Python

输出结果为:

array([5, 5, 5])
Python

重复一个数组

我们还可以重复一个数组中的每个值。同样,我们可以使用repeat函数来完成这个任务。例如,如果我们有一个数组[1, 2, 3],我们想要重复其中的每个值3次,我们可以这样写:

b = np.repeat([1, 2, 3], 3)
print(b)
Python

输出结果为:

array([1, 1, 1, 2, 2, 2, 3, 3, 3])
Python

重复一个数组(每个值的重复次数不同)

如果我们想为数组中的每个值重复不同的次数,我们可以使用Numpy中的tile函数和repeat函数的组合。tile函数用于将数组沿各维度重复。例如,我们可以将数组[1, 2, 3]重复3次:

c = np.tile([1, 2, 3], 3)
print(c)
Python

输出结果为:

array([1, 2, 3, 1, 2, 3, 1, 2, 3])
Python

现在我们有了重复3次的数组[1, 2, 3]。接下来,我们可以使用repeat函数来重复该数组中的每个值不同的次数。例如,我们想要重复1 10次,2 5次,3 2次,在Numpy中可以这样写:

d = np.repeat([1, 2, 3], [10, 5, 2])
e = np.concatenate([np.tile(x, repeat) for x, repeat in zip([1, 2, 3], [10, 5, 2])])
print(d)
print(e)
Python

输出结果分别为:

array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3])
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3])
Python

第一个输出结果是使用repeat函数重复的数组,其中1重复了10次,2重复了5次,3重复了2次。第二个输出结果与第一个输出结果相同,但是使用了tile函数和repeat函数的组合。

总结

在本文中,我们介绍了如何使用Numpy在数组中为每个值重复不同的次数。我们首先看了如何使用repeat函数重复一个标量和数组。接着,我们介绍了如何使用tile函数和repeat函数的组合来重复数组中的每个值不同的次数。这些技术可以帮助我们在数据处理和数据分析中更好地处理数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册