gpt4 book ai didi

python - 更改包含最大值和最小值的列 python

转载 作者:太空宇宙 更新时间:2023-11-03 20:12:01 25 4
gpt4 key购买 nike

我不明白为什么它不改变整个列,而只改变每一列的一个值

寻找最大值的索引>>

  def findmax(row,col,newmatrix):
index=0
max=newmatrix[0][0]
for i in range(0,row):
for j in range(col):
if newmatrix[i][j] > max :
max = newmatrix[i][j]
index = j
return index

寻找最小值的索引>>

def findmin(row,col,newmatrix):
index=0
min=newmatrix[0][0]
for i in range(0,row):
for j in range(col):
if newmatrix[i][j] < min :
min = newmatrix[i][j]
index = j
return index

更改最高值和最低值的列

def change(row,col,newmatrix):
for i in range (0,row):
temp=newmatrix[i][findmax(row, col, newmatrix)]
newmatrix[i][findmax(row, col, newmatrix)] = newmatrix[i][findmin(row, col, newmatrix)]
newmatrix[i][findmin(row, col, newmatrix)] = temp
for j in range(0,col):
print('%.2f'%newmatrix[i][j], end = " ")
print()

最佳答案

我认为您的代码不适合您,因为当您更改整个矩阵时,您同时为每一行重复您的函数(因此它将为每一行返回不同的值)。

要修复您的代码,只需在 for 循环之前执行 x=findmax(row, col, newmatrix) ,然后引用 x 在循环内而不是调用函数。

一般来说,我会将你的代码重写为 numpy,这样你就可以对列进行操作。我认为类似的事情会对你有用:

import numpy as np
x=np.array([[1,4,5], [7,4,2], [4,3,-2]])

x_max=np.unravel_index(x.argmax(axis=None), x.shape)

x_min=np.unravel_index(x.argmin(axis=None), x.shape)

temp=x[:,x_max[1]].copy()

x[:,x_max[1]]=x[:,x_min[1]]
x[:,x_min[1]]=temp

print(X)

并输出:

[[ 5  4  1]
[ 2 4 7]
[-2 3 4]]

[Program finished]

关于python - 更改包含最大值和最小值的列 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58660571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com