📜  从 Numpy 数组中按索引选择元素或子数组(1)

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

从 Numpy 数组中按索引选择元素或子数组

Numpy 是一个 Python 数字计算库,它提供了一个强大的多维数组对象和一系列计算函数。Numpy 数组的一个主要特征是其元素可以被按索引访问。本文将向您介绍如何使用 Numpy 数组索引来选择数组中的单个元素或子数组。

选择单个元素

要访问 Numpy 数组中的单个元素,您可以使用方括号[]中的索引。假设您有一个名为arr的 Numpy 数组,要访问数组的第i行第j列上的元素,您可以编写如下代码:

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
element = arr[i, j]

注:Numpy数组的索引从0开始。

选择子数组

您可以使用 Numpy 数组的索引来选择一个子数组。子数组的范围由方括号[]中的索引指定。要选择数组的第i到第j行和第k到第l列,您可以编写如下代码:

sub_array = arr[i:j, k:l]

这将返回一个子数组,其行的范围为[i,j),其列的范围为[k,l)。

使用布尔值索引选择元素

您可以使用布尔值索引选择符合特定条件的元素。要生成布尔值索引,您需要将条件应用于原始数组中,这将创建一个布尔值Numpy数组。然后,您可以使用此布尔值Numpy数组选择符合条件的元素。例如,假设您想选择arr数组中所有大于5的元素,您可以编写如下代码:

bool_arr = arr > 5
filtered_arr = arr[bool_arr]

这将返回一个由arr中所有大于5的元素组成的Numpy数组。

使用整数数组索引选择元素

整数数组索引是一种进一步选择Numpy数组中特定行和列的方法。假设您有一个名为idx的Numpy数组,其中包含要选择的行和列的索引。您可以使用这些索引来选择Numpy数组中的元素或子数组。以下是使用整数数组索引选择单个元素和子数组的示例代码:

arr = np.array([[1, 2, 3], [4, 5, 6]])

# Using integer array indexing to select a single element
idx = np.array([0, 2])
element = arr[1, idx[1]]  # selects element at row 1, column 2

# Using integer array indexing to select a subarray
row_idx = np.array([0, 1])
col_idx = np.array([0, 2])
sub_array = arr[row_idx[:, np.newaxis], col_idx]  # selects a subarray with rows 0 and 1 and columns 0 and 2
总结

本文向您介绍了如何使用 Numpy 数组索引来选择数组中的单个元素或子数组。使用这些索引和技巧,您可以在进行数字计算和分析时更轻松地操纵和使用 Numpy 数组。