求多维矩阵中最小元素的行列坐标,这个在层次聚类算法中用到,这里实现记录一下。
1.简介
矩阵M:
[[1 3 2]
[2 6 0]
[9 8 5]]
最大元素是9,对应的行列坐标为(2,0)
最小元素是0,对应的行列坐标是(1,2)
现在任务就是:输入M,输出最小/大元素的行列坐标,代码如下所示:
2.code
# -*- coding: utf-8 -*-
"""
@author: 蔚蓝的天空Tom
:计算矩阵中的最小元素,最大元素,以及对应的行列坐标
"""
import numpy as np
def indmax_matrix(M):
'''得到矩阵M中最大元素的行列坐标'''
row,col = divmod(np.argmax(M), np.shape(M)[1])
return row,col
def indmin_matrix(M):
'''得到矩阵M中最小元素的行列坐标'''
row,col = divmod(np.argmin(M), np.shape(M)[1])
return row,col
if __name__=='__main__':
M = np.array([[1,3,2],
[2,6,0],
[9,8,5]])
print('矩阵:\n', M)
print('矩阵中最大元素值:', np.max(M))
print('矩阵中最小元素值:', np.min(M))
print('矩阵中最大元素的行列坐标:', indmax_matrix(M))
print('矩阵中最小元素的行列坐标:', indmin_matrix(M))
3.运行结果
runfile('C:/Users/tom/hierarchical_clustering.py', wdir='C:/Users/tom')
矩阵:
[[1 3 2]
[2 6 0]
[9 8 5]]
矩阵中最大元素值: 9
矩阵中最小元素值: 0
矩阵中最大元素的行列坐标: (2, 0)
矩阵中最小元素的行列坐标: (1, 2)
(end)