numpy_sort&del


NUMPY.SORT

ATTENTION :

axis = 0 代表行操作

axis =1 代表列操作

1.sort

par1:传入的数组 可以是多维

par2:沿着排序的轴 axis=-1 (x轴) axis =0 (y轴) 默认axis=-1

par3:提供的排序方法:quitsort heapsort timesort

nm6如何降序排列:

x[::-1] 注意仅对一维数组有效

如果对二维数组 我采用的方法是遍历反转

具体代码如下

ff = np.array([[3, 6, 10, 2, 10], [2, 10, 3, 4, 5],[3,3,4,9,10]])

f1 = np.sort(ff)

for index in range(len(f1)):

print(f1[index][::-1])

2.lexsort()

def lexsort(keys, axis=None)

lexsort是一种多级排序方法。作用为对给定的 keys 中的最后一个 key 排序,每一个 key 都被认为是列向量,其他 keys 用来辅助最后一个 key 进行排序。最后返回最后一个 key 进行排序的索引

计算的规则如下:

#a1 拍完后的索引 再个根据b来进行比较

#a1 = [80,70,90,100,100] => [70,80,90,100,100] => (1,0,2,3,4)

a1 = [80,70,90,100,100]

b1 = [77,92,88,95,92]

cc = np.lexsort((b1,a1))

# cause 95>92

# return [1 0 2 4 3] index

3.sort_complex()

对复数进行排序

4.searchsorted()

二分查找用于查找所需的插入点

从 NumPy 1.4.0 开始searchsorted,可以使用包含 nan值的实数/复数数组。增强的排序顺序记录在sort.

bisect.bisect_left 此函数使用与内置 python ( side=’left’) 和bisect.bisect_right( ) 函数相同的算法,该算法side=’right’也在_v_参数中进行了矢量化。

关于二分查找需要一定要考虑好左右边界

测试效率:

import time

time_start = time.time()

【put your codes in here】

time_end = time.time()

time_sum = time_end - time_start

print(time_sum)

NUMPY INSERT/DELETE

quick start

numpy.append(arr, values, axis=None)

如果没有给定axis 则会将数组完全展开

a = np.array([[1,4,4,5,6],[2,3,3,4,5]])

c = np.append(a,[[3,4,5,6,7],[1,2,3,4,5]],axis=1)

print(c)

numpy.insert(arr, obj, values, axis)

参数说明:

  • arr:输入数组

  • obj:在其之前插入值的索引

  • values:要插入的值

  • axis:沿着它插入的轴,如果未提供,则输入数组会被展开

Numpy.delete(arr, obj, axis)

参数说明:

  • arr:输入数组

  • obj:可以被切片,整数或者整数数组,表明要从输入数组删除的子数组

  • axis:沿着它删除给定子数组的轴,如果未提供,则输入数组会被展开


文章作者: liming
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 liming !
评论
  目录