添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
np . where ( condition , x , y )

condition 中需要包含一个待处理的ndarray(这里记为A),那么对于A中的每个元素,如果满足条件,则将这个元素替换为x,否则,将这个元素替换为y。一个例子如下:

import numpy as np
A = np.array([1, 2, 3, 4, 5])
res = np.where(A > 3, 1, 0)
print(res)
[0 0 0 1 1]

即,对于A中的每个元素,逐个对比其是否大于3,是则将对应位置"替换"为1,不是则为0。

import numpy as np
np.where(condition)

类似的,对于A中的每个元素,检查其是否满足condition,如果是则返回其坐标。一个例子如下:

import numpy as np
A = np.array([1, 2, 3, 4, 5])
res = np.where(A > 3)
print(res)
(array([3, 4], dtype=int64),)

即下标3和下标4处的值满足条件。可以发现,这里返回的其实是一个tuple,这个tuple的维度与数组本身维度一致,用于返回多维的坐标。此外,通过简单套娃也可以将满足条件的值给取出来:

A = np.array([1, 2, 3, 4, 5])
res = np.where(A > 3)
print(A[res])
[4 5]

此时效果等同于直接使用A[A>3]

amax(a, axis=None, out=None, keepdims=, initial=, where=) Return the maximum of an array or maximum along an axis.寻找矩阵最大和最小的元素 axis=0 代表行 , axis=1 代表列 np.where有两种用法 1.np.where(condition,x,y) 当where内有三个参数时,第一个参数表示条件,当条件成立时where方法返回x,当条件不成立时where返回y 2.np.where(condition) 当where内只有一个参数时,那个参数表示条件,当条件成立时,where返回的是每个符合condition条件元素的坐标,返回的是以元组... np.where()详解及代码应用 np.where共两种用法: 第一种np.where(condition, x, y),即condition为条件,当满足条件输出为x,不满足条件则输出y.直接上代码: a = np.arange(10) //array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) print(np.where(a > 5, 1, -1)) //array([-1, -1, -1, -1, -1, -1, 1, 1, 1, 1]) 上面的挺好理解的,但 matlab中find的函数的强大之处在于其能返回下标,且视返回参数的个数,返回以列全排序的一维下标(返回参数的个数为1),返回行列索引的二维坐标(返回参数的个数为2): A = [1, 2, 3; 1, 2, 3; 1, 2, 3] 总结一句,编写程序代码时,如果只看函数的功能,有时可能会因为惯性思维导致一些自己觉得莫名其妙的错误,就像在这里,因为np.where函数的功能和if else语句的功能类似,所以也自以为其执行的逻辑也是一样的,而忘记了函数本身的执行逻辑,结果就出现错误了。所以,惯性思维是把双刃剑,有时能助你快速解决问题,有时也会给你带来一些麻烦,正确认识这一点,才能有效避免这一误区。 数据科学三分天下,Python占其一。Python数据科学 NumPy是基础,不管pandas还是tensorflow, NumPy都是基础库,学习NumPy基础类型和操作必不可少。本文我们就介绍NumPy基础,并以图形方式展现,以方便初学者理解。 NumPy中最基本数据类型是数组,所有数据组织都是n维数组形式组织的。其中一维和二维数组是基础,其他多维... numpy.where() 有两种用法:1. np.where(condition, x, y)满足条件(condition),输出x,不满足输出y。如果是一维数组,相当于[xv if c else yv for (c,xv,yv) in zip(condition,x,y)]>>> aa = np.arange(10)>>> np.where(aa,1,-1)...