📜  从 ndarray python 中选择某些元素(1)

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

从 ndarray python 中选择某些元素

在 numpy 中, ndarray 是一个多维数组对象,可以通过索引、切片等方式对其进行操作。本文将介绍从 ndarray 中选择某些元素的方法。

通过下标选择元素

使用下标可以直接选择 ndarray 中的某些元素,下标从0开始,可以是整数或者一个元素为整数的列表或者数组。下面是一些选择单个元素的示例:

import numpy as np

# 构建一个二维 ndarray
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 选择第0行,第1列的元素
print(a[0, 1])
# 输出:2

# 选择第1行的所有元素
print(a[1])
# 输出:[4 5 6]

# 选择第2列的所有元素
print(a[:, 2])
# 输出:[3 6 9]
通过切片选择元素

使用切片可以选择 ndarray 中的一部分元素,切片通过冒号分隔 start、stop、step 三个参数,其中 start 表示起始位置,stop 表示结束位置,step 表示步长。

import numpy as np

# 构建一个一维 ndarray
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

# 选择前3个元素
print(a[:3])
# 输出:[1 2 3]

# 选择第3个到第6个元素
print(a[3:6])
# 输出:[4 5 6]

# 选择第2个到第8个元素,步长为2
print(a[2:8:2])
# 输出:[3 5 7]
通过布尔数组选择元素

使用布尔数组可以根据条件选择 ndarray 中的元素,布尔数组的每个元素对应 ndarray 的一个元素,True 表示选择此元素,False 表示不选择。

import numpy as np

# 构建一个一维的 ndarray
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

# 获取数组中所有小于5的元素
select_elements = a < 5
print(select_elements)
# 输出:[ True  True  True  True False False False False False]

# 选择所有小于5的元素
print(a[select_elements])
# 输出:[1 2 3 4]
使用 where() 函数选择元素

numpy.where() 函数根据给定的条件返回一个 ndarray,其中符合条件的元素用一个值代替,不符合条件的元素用另一个值代替。

import numpy as np

# 构建一个一维 ndarray
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

# 将所有小于5的元素替换为0,其他元素不变
new_a = np.where(a < 5, 0, a)
print(new_a)
# 输出:[0 0 0 0 5 6 7 8 9]
结论

通过本文的介绍,我们可以学习到从 ndarray 中选择某些元素的几种不同方法,包括下标、切片、布尔数组和 where() 函数。根据具体的使用情况,可以选取适合自己的方法进行操作。