1. np.where()
用法:np.where(condition, x, y) 和 np.where(condition)
返回:条件满足则返回x,不满足则返回y
只有条件 (condition),没有x和y时,则输出满足条件 (即非0) 元素的坐标 (等价于numpy.nonzero)。这里的坐标以tuple的形式给出,通常原数组有多少维,输出的tuple中就包含几个数组,分别对应符合条件元素的各维坐标。
import numpy as np
a = np.array([0, 1, 2, 4, 6, 7, 8, 9])
print(a)
[0 1 2 4 6 7 8 9]
b = np.where(a > 5, 1, -1) # 大于5输出1,否则输出-1
print(b)
[-1 -1 -1 -1 1 1 1 1]
c = np.where(a > 5) # 大于5输出
print(c)
(array([4, 5, 6, 7], dtype=int64),)
参考:https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html
https://www.cnblogs.com/massquantity/p/8908859.html
2. np.argwhere(a)
用法:np.argwhere(a)
返回:非0的数组元素的索引,其中a是待索引数组的条件
import numpy as np
x = np.arange(6).reshape(2,3)
print(x)
x=[[0 1 2]
[3 4 5]]
y = np.argwhere(x>1) #x所有元素中大于1的元素的索引,分别是第0行第2列...以此类推
print(y)
y=[[0 2]
[1 0]
[1 1]
[1 2]]
参考:https://docs.scipy.org/doc/numpy/reference/generated/numpy.argwhere.html
https://blog.csdn.net/u012193416/article/details/79672514
3. argwhere与where的区别
ar = np.array([1,2,3,4])
b = np.argwhere(ar==4)
print(type(b))
print(b)
#结果:
<class 'numpy.ndarray'>
[[3]]
ar = np.array([1,2,3,4])
b = np.where(ar==4)
print(type(b))
print(b)
#结果:
<class 'tuple'>
(array([3], dtype=int64),)
————————————————
版权声明:本文为CSDN博主「peanut。」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42338058/article/details/90813715
3.
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_14812585/article/details/115293581