赞
踩
(一)argmax
numpy.argmax(a, axis=None, out=None) # 返回沿轴的最大值的索引 #3在多次出现最大值的情况下,返回对应于第一次出现的索引。 # 参数 """ a:数组 axis=None:默认情况下,将数组展平成一维数组,然后返回最大值的索引 """ #demo arr = np.arange(9).reshape(3, -1) print(arr) print(np.argmax(arr)) # 8 将数组展平成一维数组,然后返回最大值的索引 print(np.argmax(arr, axis=0)) # [2 2 2] arr = np.array([1, 10, -1, 0, 6, np.nan]).reshape(2,3) print(arr) print(np.argmax(arr)) # 5 最大值为np.nan
(二)nanargmax
numpy.nanargmax(a, axis=None)
# 返回指定轴中的最大值的索引,忽略NAN
# 参数
"""
a:数组
axis=None:默认情况下,将数组展平成一维数组,然后返回最大值的索引
"""
#demo
arr = np.array([1, 10, -1, 0, 6, np.nan]).reshape(2,3)
print(arr)
print(np.nanargmax(arr)) # 1
(三)argmin
numpy.argmin(a, axis=None, out=None)
# 返回沿轴线的最小值的索引。
#用法与argmax类似
(四)nanargmin
numpy.nanargmin(a, axis=None)
# 返回指定轴中的最小值的索引,忽略NAN
#用法与argmin类似
(五)argwhere
numpy.argwhere(a)
# 返回满足条件a的元素的索引
#demo
arr = np.array([1, 10, -1, 0, 6,7]).reshape(2, 3)
print(arr)
indexer = np.argwhere(arr > 0)
print(indexer)
"""
[[0 0]
[0 1]
[1 1]
[1 2]]
"""
(六)nonzero
numpy.nonzero(a) #返回一个由每个维度非零元素索引组成的元组 # 参数 # a:条件 # demo x = np.array([[3, 0, 0], [0, 4, 0], [5, 6, 0]]) indexer = np.nonzero(x) print(indexer) # (array([0, 1, 2, 2], dtype=int64), array([0, 1, 0, 1], dtype=int64)) print(x[indexer]) # [3 4 5 6] 根据索引获得元素 与argwhere不同,argwhere无法直接得到元素 print(np.transpose(indexer)) # 同 np.argwhere(x) # 使用具体条件 print(np.nonzero(x>0))
(七)where
numpy.where(condition[, x, y]) # 根据条件从x或y中选择返回元素。 # 参数 # condition:条件,返回布尔数组,True则为x,False则为y #demo a = np.arange(10) print(np.where(a > 5, a * 10, a)) # [ 0 1 2 3 4 5 60 70 80 90] a = np.arange(10) print(np.where(a > 5)) # 返回索引(array([6, 7, 8, 9], dtype=int64),) print(a > 5) #布尔数组 # [False False False False False False True True True True]
(八)searchsorted
numpy.searchsorted(a, v, side='left', sorter=None) #在数组a中插入数组v(并不执行插入操作),返回一个下标列表,这个列表指明了v中对应元素应该插入在a中那个位置上 #参数 """ a : 1-D array_like、 输入数组。当sorter参数为None的时候,a必须为升序数组; 否则,sorter不能为空,存放a中元素的index,用于反映a数组的升序排列方式。 v : array_like 插入a数组的值,可以为单个元素,list或者array。 side : {'left', 'right'}, 默认left 对于left,返回的是与这个元素相等的元素的位置 对于right,返回的是与这个元素相等的元素的下一个位置 没有符合的元素, 如果这个元素比a的最小值还小,就返回0, 如果比a的最大值还大,就返回数组a的长度N 如果这个不存在的元素位于数组a的中间时,返回第一个比它大的那个元素的位置 sorter : 1-D array_like, 存放a数组元素升序排序的index。使用argsort获得 """ # demo a = np.array([-1, 0, 1, 4, 10, 19]) # a按照升序 print(np.searchsorted(a, 1)) # 2 print(np.searchsorted(a, 1, side='right')) # 3 print(np.searchsorted(a, 9)) # 4 a = np.array([1, 6, 0, 2, 10, 11]) # a未排序 indexer = np.argsort(a) print(np.searchsorted(a, 6, sorter=indexer)) # 3 print(np.searchsorted(a, [0, 6, 9], sorter=indexer)) # [0 3 4]
(九)extract
numpy.extract(condition, arr)
# 返回满足某些条件的数组元素。
#参数
"""
condition:条件,返回布尔数组,
arr:与条件大小相同的输入数组
"""
#demo
arr = np.array([1, 10, -1, 0, 6, 7]).reshape(2, 3)
print(np.extract(arr > 0, arr))
print(np.where(arr > 0))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。