对矩阵的操作2

对矩阵的索引排序:

data = numpy.sin(numpy.arange(20)).reshape(5,4)

print (data)

ind = data.argmax(axis=0)    #在每一列中找到值最大的角标

print (ind)

#data.shape[1]表示(5,4)中的4,range(4)值是0 1 2 3

data_max = data[ind,range(data.shape[1])]   

#data[ind,range(5)] 中前后参数都是列,即第一个参数中第一个元素对应第一列最大值的角标,第二个参数对应第0列,以此类推。

#再展开则是data[[2 0 3 1],[0 1 2 3]],即第2行第0列,第0行第1列等等  对应着data里的最大值。

print (data_max)

对矩阵的操作2_第1张图片
结果

对矩阵进行扩展:tile()函数

matrix = numpy.arange(0,40,10)

print (matrix)

print (numpy.tile(matrix,(2,2)))   #将matrix扩展成2行2列的矩阵

结果

矩阵排序:

matrix = numpy.array([[3,2,5],[7,1,3]])

print (matrix)

print (numpy.sort(matrix,axis=1))    #按照行来从小到大排序

a = numpy.array([2,5,1,4])

ind = numpy.argsort(a)   #返回由小到大的值得角标

print (ind)

print (a[ind])   #输出各角标的值

结果

你可能感兴趣的:(对矩阵的操作2)