sort 函数
先看这个例子:
sort
返回的结果是从小到大排列的。
argsort 函数
argsort
返回从小到大的排列在数组中的索引位置:
可以用它来进行索引:
使用函数并不会改变原来数组的值:
sort 和 argsort 方法
数组也支持方法操作:
二维数组排序
对于多维数组,sort方法默认沿着最后一维开始排序:
对于二维数组,默认相当于对每一行进行排序.
改变轴,对每一列进行排序:
searchsorted 函数
searchsorted(sorted_array, values)
searchsorted
接受两个参数,其中,第一个必需是已排序的数组。
排序数组:
0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
0.0 | 0.25 | 0.5 | 0.75 | 1.0 |
数值:
值 | 0.1 | 0.8 | 0.3 | 0.12 | 0.5 | 0.25 |
---|---|---|---|---|---|---|
插入位置 | 1 | 4 | 2 | 1 | 2 | 1 |
searchsorted
返回的值相当于保持第一个数组的排序性质不变,将第二个数组中的值插入第一个数组中的位置:
例如 0.1
在 [0.0, 0.25) 之间,所以插入时应当放在第一个数组的索引 1
处,故第一个返回值为 1
。
利用插入位置,将数组中所有在这两个值之间的值提取出来.
注:
In [36]: np.searchsorted?
Signature: np.searchsorted(a, v, side='left', sorter=None)
Docstring:
Find indices where elements should be inserted to maintain order.
Find the indices into a sorted array `a` such that, if the
corresponding elements in `v` were inserted before the indices, the
order of `a` would be preserved.
Parameters
----------
a : 1-D array_like
Input array. If `sorter` is None, then it must be sorted in
ascending order, otherwise `sorter` must be an array of indices
that sort it.
v : array_like
Values to insert into `a`.
side : {'left', 'right'}, optional
If 'left', the index of the first suitable location found is given.
If 'right', return the last such index. If there is no suitable
index, return either 0 or N (where N is the length of `a`).
sorter : 1-D array_like, optional
Optional array of integer indices that sort array a into ascending
order. They are typically the result of argsort.
.. versionadded:: 1.7.0
Returns
-------
indices : array of ints
Array of insertion points with the same shape as `v`.
See Also
--------
sort : Return a sorted copy of an array.
histogram : Produce histogram from 1-D data.
Notes
-----
Binary search is used to find the required insertion points.
As of NumPy 1.4.0 `searchsorted` works with real/complex arrays containing
`nan` values. The enhanced sort order is documented in `sort`.
Examples
--------
>>> np.searchsorted([1,2,3,4,5], 3)
2
>>> np.searchsorted([1,2,3,4,5], 3, side='right')
3
>>> np.searchsorted([1,2,3,4,5], [-10, 10, 2, 3])
array([0, 5, 1, 2])
File: c:\users\xiaoj\anaconda3\lib\site-packages\numpy\core\fromnumeric.py
Type: function