在包含字符串的python矩阵中查找最大数的索引
我明白在包含字符串的python矩阵中查找最大数的索引,python,list,numpy,matrix,Python,List,Numpy,Matrix,我明白 np.argmax(np.max(x, axis=1)) 返回包含最大值和最大值的行的索引 np.argmax(np.max(x, axis=0)) 返回包含最大值的行的索引 但是如果矩阵包含字符串呢?如何更改代码,使其仍能找到最大值的索引 此外(如果无法执行我之前要求的操作),我是否可以更改代码,以便只在矩阵的子部分执行操作,例如,在本例中,在右下角的“2x2”子矩阵上: array = [['D','F,'J'], ['K',3,4], ['B',3,1]] [[3,4], [
np.argmax(np.max(x, axis=1))
返回包含最大值和最大值的行的索引
np.argmax(np.max(x, axis=0))
返回包含最大值的行的索引
但是如果矩阵包含字符串呢?如何更改代码,使其仍能找到最大值的索引
此外(如果无法执行我之前要求的操作),我是否可以更改代码,以便只在矩阵的子部分执行操作,例如,在本例中,在右下角的“2x2”子矩阵上:
array = [['D','F,'J'],
['K',3,4],
['B',3,1]]
[[3,4],
[3,1]]
能否先尝试将列转换为dtype类型?如果采用数据类型列的最小值/最大值,则应使用字符串值作为最小值/最大值。虽然效率不高,但这可能是使用切片在原始矩阵中查找最大数索引的一种方法:
newmax=0
newmaxrow=0
newmaxcolumn=0
for row in [array[i][1:] for i in range(1,2)]:
for num in row:
if num>newmax:
newmax=num
newmaxcolumn=row.index(newmax)+1
newmaxrow=[array[i][1:] for i in range(1,2)].index(row)+1
注意:如果最大的数字位于第0行或第0列内,此方法将不起作用。最大值是多少?
K
或J
与3或4相比如何?最大的值是最大的数字,在这种情况下,它将是4。J和K只是矩阵中的随机字符串。对于一些字符串,则整个数组要么是字符串,要么是对象数据类型。检查dtype
。您可能需要用一些无害的值(不是最小值或最大值)替换字符串,然后执行arg…
。观看dtype
@hpaulj您知道如何对矩阵进行切片以获得指定的子矩阵吗?