矩阵/python中的最小值
我不知道如何在矩阵中找到最小值的索引,你能帮我吗?我在网上找不到关于这件事的任何消息矩阵/python中的最小值,python,arrays,matrix,min,Python,Arrays,Matrix,Min,我不知道如何在矩阵中找到最小值的索引,你能帮我吗?我在网上找不到关于这件事的任何消息 def printMatrix(matrix): for i in matrix: for j in i: print(j, end=' ') print() m=[ [1, 1, 2, 5, 6, 1] , [5, 6, 8, 5, 6, 7] , [10, 12, 10, 12, 11, 11] , [8, 10, 5, 6, 8, 9] , [
def printMatrix(matrix):
for i in matrix:
for j in i:
print(j, end=' ')
print()
m=[ [1, 1, 2, 5, 6, 1] , [5, 6, 8, 5, 6, 7] , [10, 12, 10, 12, 11, 11] , [8, 10, 5, 6, 8, 9] , [6, 5, 10, 12, 15, 19]]
printMatrix(m)
首先,让我们制作一个示例矩阵:
import numpy as np
np.random.seed(100)
mat = np.random.rand(3, 3)
print(mat)
这是我们的矩阵:
[[ 0.54340494 0.27836939 0.42451759]
[ 0.84477613 0.00471886 0.12156912]
[ 0.67074908 0.82585276 0.13670659]]
然后,我们可以设置初始“最小”测试值以及该值在矩阵中的位置:
min_val = mat[0][0]
min_idx = (0, 0)
接下来,我们可以遍历矩阵中的每一行,使用enumerate
跟踪我们所在行的索引,并使用np.argmin
查找每一行中最小元素的索引:
for idx, row in enumerate(mat):
if min(row) < min_val:
min_val = min(row)
min_idx = (idx, np.argmin(row))
print(min_val, min_idx)
首先,让我们制作一个示例矩阵:
import numpy as np
np.random.seed(100)
mat = np.random.rand(3, 3)
print(mat)
这是我们的矩阵:
[[ 0.54340494 0.27836939 0.42451759]
[ 0.84477613 0.00471886 0.12156912]
[ 0.67074908 0.82585276 0.13670659]]
然后,我们可以设置初始“最小”测试值以及该值在矩阵中的位置:
min_val = mat[0][0]
min_idx = (0, 0)
接下来,我们可以遍历矩阵中的每一行,使用enumerate
跟踪我们所在行的索引,并使用np.argmin
查找每一行中最小元素的索引:
for idx, row in enumerate(mat):
if min(row) < min_val:
min_val = min(row)
min_idx = (idx, np.argmin(row))
print(min_val, min_idx)
这会将二维数组转换为一维数组,然后查找最小值的索引
def maxIndex(matrix):
matrix2 = []
for a in range(len(matrix)):
for b in range(len(matrix[a])):
matrix2.append(matrix[a][b])
val = -(10)^99
index = 10^99
for a in range(len(matrix2)):
if matrix2[a]<val:
val = matrix2[a]
index = a
return index
def最大索引(矩阵):
matrix2=[]
对于范围内的(len(矩阵)):
对于范围内的b(len(矩阵[a]):
矩阵2.追加(矩阵[a][b])
val=-(10)^99
索引=10^99
对于范围内的(len(matrix2)):
如果matrix2[a]这将2D数组转换为1D数组,然后查找最小值的索引
def maxIndex(matrix):
matrix2 = []
for a in range(len(matrix)):
for b in range(len(matrix[a])):
matrix2.append(matrix[a][b])
val = -(10)^99
index = 10^99
for a in range(len(matrix2)):
if matrix2[a]<val:
val = matrix2[a]
index = a
return index
def最大索引(矩阵):
matrix2=[]
对于范围内的(len(矩阵)):
对于范围内的b(len(矩阵[a]):
矩阵2.追加(矩阵[a][b])
val=-(10)^99
索引=10^99
对于范围内的(len(matrix2)):
如果matrix2[a]如果您只需要第一次出现:
>>> minimum = min(map(min, m))
>>> for i, thing in enumerate(m):
try:
j = thing.index(minimum)
print('minimum is at m[{}][{}]'.format(i,j))
except ValueError as e:
pass
minimum is at m[0][0]
如果需要所有事件的索引:
>>> minimum = min(map(min, m))
>>> for i, thing in enumerate(m):
for j, x in enumerate(thing):
if x == minimum:
print('minimum is at m[{}][{}]'.format(i,j))
minimum is at m[0][0]
minimum is at m[0][1]
minimum is at m[0][5]
>>>
如果您只需要第一次出现:
>>> minimum = min(map(min, m))
>>> for i, thing in enumerate(m):
try:
j = thing.index(minimum)
print('minimum is at m[{}][{}]'.format(i,j))
except ValueError as e:
pass
minimum is at m[0][0]
如果需要所有事件的索引:
>>> minimum = min(map(min, m))
>>> for i, thing in enumerate(m):
for j, x in enumerate(thing):
if x == minimum:
print('minimum is at m[{}][{}]'.format(i,j))
minimum is at m[0][0]
minimum is at m[0][1]
minimum is at m[0][5]
>>>
您需要将矩阵展平为1D向量/列表,并找到该向量/列表的最小值。您可以使用内置的min
函数来查找1D列表的最小值。环顾四周,了解如何将列表展平。欢迎访问。请审查并提供一份报告。你期望你的输出是什么?你尝试过什么?你想把你的矩阵展平成一维向量/列表,然后找到它的最小值。您可以使用内置的min
函数来查找1D列表的最小值。环顾四周,了解如何将列表展平。欢迎访问。请审查并提供一份报告。你期望你的输出是什么?你尝试了什么?哎呀。你打败我了!或者,使用-np.where(mat==mat.min())
Oops。你打败我了!或者,使用-np.where(mat==mat.min())