python - 计算三个矩阵的最大值和最小值

标签 python python-3.x numpy max min

我有三个矩阵,我想计算 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/

相关文章:

python - Python Numpy 中多个数组的逐元素乘法

python - 如何将数组转换为可调用函数

python - 将 CHANGING OrderedDict 输出为 CSV

python - 如何在不失真的情况下打印和显示子进程标准输出和标准错误输出?

python - 赋值前引用的局部变量

python-3.x - 当 pip 要求中包含雪花依赖项时,docker build 失败

python - 如何在 sqlite3 数据库中插入列表

python - 在ubuntu中安装ujson的问题

python - 使用 Python 检查 Raspberry Pi 是否连接到任何 WiFi 网络(不一定是 Internet)

python - 检查 : for each element in array check if it exists in another array 的高效实现