在numpy中,什么是在两个轴上查找3D ndarray的最大值及其索引的有效方法?

马瓦尔

如何找到一组2D互相关函数的相关峰值和坐标?给定一个3D ndarray,其中包含一组2D互相关函数。查找最大(峰值)值及其坐标(x和y索引)的有效方法是什么?
下面的代码可以完成工作,但我认为它的效率很低。

import numpy as np
import numpy.matlib 


ccorr  = np.random.rand(7,5,5)
xind   = ccorr.argmax(axis=-1)
mccorr = ccorr[np.matlib.repmat(np.arange(0,7)[:,np.newaxis],1,5),np.matlib.repmat(np.arange(0,5)[np.newaxis,:],7,1), xind]
yind   = mccorr.argmax(axis=-1)
xind   = xind[np.arange(0,7),yind]
values = mccorr[np.arange(0,7),yind]

print("cross-correlation functions (z,y,x)")
print(ccorr)

print("x and y indices of the maximum values")
print(xind,yind)
print("Maximum values")
print(values)
丹尼尔·F

您将希望展平正在搜索的尺寸,然后使用unravel_indextake_along_axis分别获取坐标和值。

ccorr  = np.random.rand(7,5,5)
cc_rav = ccorr.reshape(ccorr.shape[0], -1)
idx = np.argmax(cc_rav, axis = -1)
indices_2d = np.unravel_index(idx, ccorr.shape[1:])
vals = np.take_along_axis(ccorr, indices = indices_2d, axis = 0)

如果您使用的numpy版本<1.15:

vals = cc_rav[np.arange(ccorr.shape[0]), idx]

要么:

vals = ccorr[np.arange(ccorr.shape[0]), 
             indices_2d[0], indices_2d[1]]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

找到最大值及其索引以移动numpy ndarray的子数组的Python方法是什么?

来自分类Dev

在python中查找变化集的最小值和最大值的有效方法

来自分类Dev

在数组中查找最小值和最大值的有效方法

来自分类Dev

在python中查找变化集的最小值和最大值的有效方法

来自分类Dev

获得具有最大值的行的最有效方法是什么?

来自分类Dev

从对象列表中获取具有最大值的对象的最有效方法

来自分类Dev

遍历列表和设置最大值Python的最有效方法是什么?

来自分类Dev

Numpy:在 3D 数组中沿一个轴查找最大值和相应位置

来自分类Dev

在C ++中找到const向量中4个最大值的迭代器的最有效方法

来自分类Dev

使用C ++在两个排序数组中查找匹配值索引的最有效方法

来自分类Dev

在两个不同列表中查找相同索引号以比较值的最有效方法

来自分类Dev

NumPy:在两个4D矩阵中将每对3D矩阵相乘的有效方法吗?

来自分类Dev

NumPy:将每对2d矩阵乘以两个3d矩阵的有效方法吗?

来自分类Dev

如何编写更有效的宏以返回A列中的最大值

来自分类Dev

以最有效的方式在数组中查找第二个最大值

来自分类Dev

在numpy ndarray中沿指定轴循环矢量的有效方法是什么?

来自分类Dev

如何有效地过滤由两列 groupby 操作获得的数据框以仅包含第二个索引的最大值和最小值?

来自分类Dev

查找间隔索引的有效方法

来自分类Dev

如何有效地在二维上合并两个3d数组?

来自分类Dev

如何有效地在二维上合并两个3d数组?

来自分类Dev

在没有for循环的情况下比较Numpy中两个3D矩阵的数组

来自分类Dev

在python 3中的两个非常大的元组列表中查找通用元组索引的最有效方法?

来自分类Dev

一个模板函数,用于获取向量中的最大值及其对应的索引

来自分类Dev

比较两个Oracle数据库表及其有效值

来自分类Dev

查找最小索引的最有效方法,其值减去前一个索引的值小于给定的x?

来自分类Dev

查找最小索引的最有效方法,其值减去前一个索引的值小于给定的x?

来自分类Dev

在一个轴上的3D数组中查找最小值,并在python中用0替换另一个3D数组中的不对应值而没有循环

来自分类Dev

在np.ndarray中检索最小值和最大值的索引

来自分类Dev

从不同列表中获取具有相同索引的最大值的 Pythonic 方法

Related 相关文章

  1. 1

    找到最大值及其索引以移动numpy ndarray的子数组的Python方法是什么?

  2. 2

    在python中查找变化集的最小值和最大值的有效方法

  3. 3

    在数组中查找最小值和最大值的有效方法

  4. 4

    在python中查找变化集的最小值和最大值的有效方法

  5. 5

    获得具有最大值的行的最有效方法是什么?

  6. 6

    从对象列表中获取具有最大值的对象的最有效方法

  7. 7

    遍历列表和设置最大值Python的最有效方法是什么?

  8. 8

    Numpy:在 3D 数组中沿一个轴查找最大值和相应位置

  9. 9

    在C ++中找到const向量中4个最大值的迭代器的最有效方法

  10. 10

    使用C ++在两个排序数组中查找匹配值索引的最有效方法

  11. 11

    在两个不同列表中查找相同索引号以比较值的最有效方法

  12. 12

    NumPy:在两个4D矩阵中将每对3D矩阵相乘的有效方法吗?

  13. 13

    NumPy:将每对2d矩阵乘以两个3d矩阵的有效方法吗?

  14. 14

    如何编写更有效的宏以返回A列中的最大值

  15. 15

    以最有效的方式在数组中查找第二个最大值

  16. 16

    在numpy ndarray中沿指定轴循环矢量的有效方法是什么?

  17. 17

    如何有效地过滤由两列 groupby 操作获得的数据框以仅包含第二个索引的最大值和最小值?

  18. 18

    查找间隔索引的有效方法

  19. 19

    如何有效地在二维上合并两个3d数组?

  20. 20

    如何有效地在二维上合并两个3d数组?

  21. 21

    在没有for循环的情况下比较Numpy中两个3D矩阵的数组

  22. 22

    在python 3中的两个非常大的元组列表中查找通用元组索引的最有效方法?

  23. 23

    一个模板函数,用于获取向量中的最大值及其对应的索引

  24. 24

    比较两个Oracle数据库表及其有效值

  25. 25

    查找最小索引的最有效方法,其值减去前一个索引的值小于给定的x?

  26. 26

    查找最小索引的最有效方法,其值减去前一个索引的值小于给定的x?

  27. 27

    在一个轴上的3D数组中查找最小值,并在python中用0替换另一个3D数组中的不对应值而没有循环

  28. 28

    在np.ndarray中检索最小值和最大值的索引

  29. 29

    从不同列表中获取具有相同索引的最大值的 Pythonic 方法

热门标签

归档