python找出矩阵中的最大值_Python / Scipy:找到矩阵的“有界”最小值/最大值

我认为指出我的问题最简单,一般情况很难解释.说我有一个矩阵a with dimensions NxMxT,人们可以将T视为时间维度(使问题更容易).设(n,m)为通过NxM的指数.我可以调用(n,m)状态空间标识符.然后我需要找到python / scipy等价的for each (n,m):find a*(n,m) = min(a(n,m,:) s.t. a*(n,m) > a(n,m,T...
摘要由CSDN通过智能技术生成

我认为指出我的问题最简单,一般情况很难解释.

说我有一个矩阵

a with dimensions NxMxT,

人们可以将T视为时间维度(使问题更容易).设(n,m)为通过NxM的指数.我可以调用(n,m)状态空间标识符.然后我需要找到python / scipy等价的

for each (n,m):

find a*(n,m) = min(a(n,m,:) s.t. a*(n,m) > a(n,m,T)

也就是说,找到仍然高于最后一个(在时间维度中)观察的最小状态空间值 – 对于整个状态空间.

我的第一个尝试是首先解决内部问题(找到一个高于[…, – 1]的):

aHigherThanLast = a[ a > a[...,-1][...,newaxis] ]

然后我想在每个(n,m)中找到所有这些中最小的.不幸的是,aHigherThanLast现在包含所有这些值的一维数组,因此我不再具有(n,m)对应关系.什么是更好的方法呢?

作为一个额外的问题:状态空间是可变的,它也可能是3维或更多维度(NxMxKx …),我不能硬编码.任何一种

for (n,m,t) in nditer(a):

不可行.

非常感谢!

/编辑:

a = array([[[[[[[[ 0., 2., 1.],

[ 0., 2., 1.],

[ 0., 2., 1.],

[ 0., 2., 1.],

[ 0., 2., 1.],

[ 0., 2., 1.],

[ 0., 2., 1.],

[ 0., 2., 1.],

[ 0., 2., 1.],

[ 0., 2., 1.]]]],

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,可以使用NumPy库来进行最大值最小值滤波器的操作。 最大值滤波器可以用来消除噪声,保留图像的边缘和细节。最小值滤波器可以用来消除斑点和小噪声。 下面是一个示例代码,用于演示如何使用NumPy库来实现最大值最小值滤波器: ``` python import numpy as np from scipy import ndimage # 生成一个随机的10x10的图像 image = np.random.randint(0, 255, (10, 10)) # 定义一个3x3的最大值滤波器 max_filter = np.ones((3, 3)) max_filter = max_filter / np.sum(max_filter) # 定义一个3x3的最小值滤波器 min_filter = np.ones((3, 3)) min_filter = min_filter / np.sum(min_filter) # 使用ndimage的maximum_filter函数进行最大值滤波 max_image = ndimage.maximum_filter(image, size=3) # 使用ndimage的minimum_filter函数进行最小值滤波 min_image = ndimage.minimum_filter(image, size=3) # 打印原始图像、最大值滤波后的图像和最小值滤波后的图像 print("Original image:") print(image) print("Maximum filtered image:") print(max_image) print("Minimum filtered image:") print(min_image) ``` 在上面的示例代码,我们生成了一个随机的10x10的图像,并定义了一个3x3的最大值滤波器和最小值滤波器。使用NumPy库的`ones`函数生成一个3x3的矩阵,并将其除以所有元素之和,以确保所有元素之和为1。然后,使用`ndimage`的`maximum_filter`和`minimum_filter`函数对图像进行最大值最小值滤波。最后,我们打印原始图像、最大值滤波后的图像和最小值滤波后的图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值