当前位置: 首页 > 工具软件 > 11in1 > 使用案例 >

【NumPy】 之常见运算(np.sort,np.in1d,np.pad)

公孙琛
2023-12-01

np.sort()

sort(a, axis=-1, kind='quicksort', order=None)

a 代表任意一个多维数组,
axis——就是维度的选择,0是列,1是行
第三个参数就是排序的方式……
学习第四个的时候,了解到了针对多维数组中元素为列表或元组的情况

In [37]: arr = np.array([[6, 2, 7], [3, 6, 2], [4, 3, 2]])
In [38]: arr.sort() #按照横坐标进行排序
In [39]: arr
Out[39]:
array([[2, 6, 7],
       [2, 3, 6],
       [2, 3, 4]])
In [42]: arr = np.array([[6, 2, 7], [3, 6, 2], [4, 3, 2]])
In [43]:  arr.sort(0) # 编号为0 指的是纵坐标
In [44]: arr
Out[44]:
array([[3, 2, 2],
       [4, 3, 2],
       [6, 6, 7]])

In [59]: dt = np.dtype([('name',  'S10'),('age',  int)])
    ...: a = np.array([("raju",21),("anil",25),("ravi",  17),  ("amar",27)], dtype = dt)
In [60]: np.sort(a, order =  'name')
Out[60]:
array([(b'amar', 27), (b'anil', 25), (b'raju', 21), (b'ravi', 17))             

np.in1d()

numpy库下的in1d函数。in1d函数与excel中vlookup函数和MATLAB中ismember函数有相似之处。其作用在于在序列B中寻找与序列A相同的值,并返回一逻辑值(True,False)或逻辑值构成的向量。

arr = np.array([12, 11, 34, 23, 12, 8, 11])
np.in1d(arr,[11,12])
array([ True,  True, False, False,  True, False,  True])

numpy.pad

numpy.pad(a, pad_width, mode, **kwargs)
a为要填补的数组
pad_width是在各维度的各个方向上想要填补的长度,如((1,2),(2,2)),表示在第一个维度上水平方向上padding=1,垂直方向上padding=2,在第二个维度上水平方向上padding=2,垂直方向上padding=2。如果直接输入一个整数,则说明各个维度和各个方向所填补的长度都一样。
 mode为填补类型,即怎样去填补,有“constant”,“edge”等模式,如果为constant模式,就得指定填补的值,如果不指定,则默认填充0。 
剩下的都是一些可选参数,具体可查看 
https://docs.scipy.org/doc/numpy/reference/generated/numpy.pad.html
ndarray为填充好的返回值。
一维数组
import numpy as np
array = np.array([1, 1, 1])

# (1,2)表示在一维数组array前面填充1位,最后面填充2位
#  constant_values=(0,2) 表示前面填充0,后面填充2
ndarray=np.pad(array,(1,2),'constant', constant_values=(0,2)) 

print("array",array)
print("ndarray=",ndarray)
array [1 1 1]
ndarray= [0 1 1 1 2 2]

二维数组

import numpy as np
array = np.array([[1, 1],[2,2]])

"""
((1,1),(2,2))表示在二维数组array第一维(此处便是行)前面填充1行,最后面填充1行;
                 在二维数组array第二维(此处便是列)前面填充2列,最后面填充2列
constant_values=(0,3) 表示第一维填充0,第二维填充3
"""
ndarray=np.pad(array,((1,1),(2,2)),'constant', constant_values=(0,3)) 

print("array",array)
print("ndarray=",ndarray)
array [[1 1]
       [2 2]]

ndarray= [[0 0 0 0 3 3]
          [0 0 1 1 3 3]
          [0 0 2 2 3 3]
          [0 0 3 3 3 3]]

参考链接
链接:https://www.cnblogs.com/hezhiyao/p/8177541.html

 类似资料: