numpy中where和take的用法

在NumPy中,where和take是两个非常有用的函数,它们可以用于处理数组。

1.numpy.where() 函数返回输入数组中满足给定条件的元素的索引。它的基本语法如下:

numpy.where(condition[, x, y])

condition:当只有条件时,返回满足条件的元素的索引。
x, y:当给出条件以及两个数组时,返回满足条件从 x 中提取的元素的数组,不满足条件的从 y 中提取的元素的数组。
示例:

#我的Python教程
#微信公众号:wdPython
import numpy as np  
  arr = np.array([10, 20, 30, 40, 50])  
indices = np.where(arr > 25)  
print(indices)  # 输出:(array([3, 4]),)

在这个示例中,如果x中的元素大于25,则返回该元素,否则返回y中对应的元素。

  1. numpy.take()函数从输入数组中提取一个序列的元素并返回。它的基本语法如下:
numpy.take(a, indices[, axis])

a:输入数组。
indices:要提取的元素的索引。
axis:可选参数,提取元素的轴。默认是0。如果轴的标签是负数,则它们表示从右到左的距离。如果给出多个轴,则输入数组应该是一维的。

import numpy as np  
  
arr = np.array([[10, 20], [30, 40], [50, 60]])  
indices = [1, 2]  # 在每一行中提取第1个和第3个元素(Python是从0开始计数的)  
result = np.take(arr, indices)  
print(result)  # 输出:[[30 40] [50 60]]

猜你喜欢

转载自blog.csdn.net/gxz888/article/details/134923678