我有三个矩阵,我想计算 R1 以及 Ex1 和 Ex2 的第一列的最小值和最大值。我将最小值保存在 Il 中,将最大值保存在 Ih 中。当我求最大值时,矩阵Il变成了Ih,不知道为什么。而且,计算出的最大值实际上并不是最大值。下面给出了代码以及观察到的和预期的输出。人们期望第一个和第三个打印语句给出相同的输出,但事实并非如此。
import numpy as np
Rl = np.matrix([[70,15,10,15,65]]).transpose()
Ex1 = np.matrix([[20,10,40,2,40] ,[ 55,22,50,10,60],
[80,40,75,25,80]]).transpose()
Ex2 = np.matrix([[30,20,30,10,50],[50,30,50,20,60],
[60,40,70,30,70]]).transpose()
Il = np.minimum(Rl[:,0],Ex1[:,0],Ex2[:,0])
print("Il =\n {}\n".format(Il))
Ih = np.maximum(Rl[:,0],Ex1[:,0],Ex2[:,0])
print("Ih =\n {}\n".format(Ih))
print("Il =\n {}\n".format(Il))
实际结果
Il =
[[20]
[10]
[10]
[ 2]
[40]]
Ih =
[[70]
[15]
[40]
[15]
[65]]
Il =
[[70]
[15]
[40]
[15]
[65]]
预期结果
Il =
[[20]
[10]
[10]
[ 2]
[40]]
Ih =
[[70]
[20]
[40]
[15]
[65]]
Il =
[[20]
[10]
[10]
[ 2]
[40]]
最佳答案
Numpy 的 .minimum()
和 .maximum()
根本不适用于两个以上的数组。第三个参数被解释为输出数组,因此您每次都会覆盖 Ex2
并打印其修改后的内容。
关于python - 计算三个矩阵的最大值和最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53870161/