📌  相关文章
📜  如何使用 NumPy 在Python随机选择数组的行?(1)

📅  最后修改于: 2023-12-03 15:23:56.791000             🧑  作者: Mango

如何使用 NumPy 在 Python 随机选择数组的行?

如果你在 Python 中使用 NumPy 进行数组操作,你有时可能需要从数组的行中随机选择一些行。这可能用于训练和测试机器学习模型或生成随机数据。本篇文章将向您介绍如何使用 NumPy 在 Python 中随机选择数组的行。

生成随机数组

首先,我们需要生成一个随机数组,以便我们可以从其中随机选择行。我们可以使用 numpy.random 模块来生成一个包含随机整数的数组。以下是如何使用 NumPy 生成包含 100 行和 10 列的随机整数数组的示例代码:

import numpy as np

# 生成 100 行和 10 列的随机整数数组
arr = np.random.randint(low=0, high=100, size=(100, 10))

print(arr)

输出:

[[76 35 72 37 44 12 74 36  1 15]
 [31 51 95 46 28 40 66 31 58 98]
 [ 6 77 47 42 37 59 17 45 78  4]
 ...
 [56 61 39 38 22  4 38 66 91 91]
 [61 99 60 10 67 32 96 87 54 64]
 [ 2  8 75 48 30 67 56 48 67 88]]
随机选择数组的行

现在我们已经有了一个随机数组,我们可以从该数组中随机选择一些行。我们可以使用 numpy.random.choice 函数来随机选择行。

以下是如何使用 numpy.random.choice 函数从数组中随机选择 5 行的示例代码:

# 随机选择 5 行
selected_rows = np.random.choice(arr.shape[0], size=5, replace=False)

print(selected_rows)

输出:

[20 60 17 47  9]

我们使用 numpy.random.choice 函数将 arr.shape[0](数组的行数)传递给 size 参数,表示我们要随机选择的行数。我们还设置了 replace=False,这意味着我们不能选择相同的行。

现在,我们已经随机选择了 5 行,我们可以使用 NumPy 的切片操作选择这些行。以下是如何使用 NumPy 切片操作选择这些行的示例代码:

# 从数组中获取选定的行
selected_arr = arr[selected_rows]

print(selected_arr)

输出:

[[55 83 39  0 35  8 56 95 57 20]
 [ 1 14 71 59 95 86 21 86 50 28]
 [ 8 97 24 49 76 97 23 32 23 44]
 [28 36  9 61 69 30 20 12 73 36]
 [30 85 42 95 65  7 43 86 15 12]]

现在,我们已经成功地在数组中随机选择了 5 行。您可以根据需要更改选择的行数,也可以在选择行之前修改随机数组的大小和形状。

结论

在 Python 中使用 NumPy 随机选择数组的行非常简单。我们只需要使用 numpy.random.choice 函数随机选择行,然后使用 NumPy 的切片操作选择这些行即可。使用 NumPy,我们可以轻松地生成随机数组并随机选择数组的行来生成随机数据或训练和测试机器学习模型。