Numpy – 遍历np.where输出结果

Numpy – 遍历np.where输出结果

在本文中,我们将介绍如何使用Numpy中的np.where方法,并且演示如何遍历其输出结果。

阅读更多:Numpy 教程

什么是Numpy中的np.where方法

np.where方法是Numpy中用于根据给定条件返回数组中符合条件的元素下标的方法。它有三个参数:condition、x、y。其中,condition是条件表达式,x是符合条件的元素在输出数组中的值,y是不符合条件的元素在输出数组中的值。

下面,我们通过一个简单的例子演示一下np.where的使用:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
condition = arr > 3
print(np.where(condition, arr, 0))
Python

输出结果为:

[0 0 0 4 5]
Python

这个例子中,我们定义了一个数组arr = np.array([1, 2, 3, 4, 5]),以及一个条件表达式condition = arr > 3,表示数组中所有大于3的元素。我们调用了np.where(condition, arr, 0),返回的是当元素符合条件时输出数组中对应位置的值(也就是arr数组中的值),否则就输出0。所以最后的输出结果就是[0 0 0 4 5]

遍历np.where的输出结果

在上面的例子中,我们仅仅是输出了np.where的返回结果,但是有时候我们需要对这个结果进行遍历,以便进行一些操作。这时,可以用np.nditer方法来遍历输出结果。np.nditer是Numpy中用于遍历数组中元素的方法,可以对多维数组进行遍历,并支持多种遍历方式。

下面,我们通过一个例子演示如何遍历np.where的输出结果:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
condition = arr > 3
output = np.where(condition, arr, 0)
with np.nditer(output, flags=['multi_index'], op_flags=['readonly']) as it:
    for x in it:
        print('%d,%d' % (it.multi_index, x))
Python

输出结果为:

3,4
4,5
Python

这个例子中,我们定义了一个数组arr = np.array([1, 2, 3, 4, 5]),以及一个条件表达式condition = arr > 3,表示数组中所有大于3的元素。我们调用了np.where(condition, arr, 0),返回的是当元素符合条件时输出数组中对应位置的值(也就是arr数组中的值),否则就输出0。我们将这个结果存储到了output变量中。然后,使用np.nditer方法遍历output变量,对每一个元素进行操作并输出。

注意,在使用np.nditer时,我们需要指定两个参数:flagsop_flagsflags表示遍历时的方式,可以是c_index(以C语言风格的顺序遍历)或f_index(以Fortran风格的顺序遍历)。op_flags表示该操作是只读的还是可写的,使用readonly表示只读。

总结

在本文中,我们介绍了Numpy中的np.where方法的基本使用,并演示了如何使用np.nditer方法遍历它的输出结果。希望这篇文章对您有所帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册