【问题标题】:How can I perform 3D array calculations efficiently?如何有效地执行 3D 数组计算?
【发布时间】:2020-10-06 20:52:10
【问题描述】:

我会很高兴得到您的帮助。

我在 python (500,200,1000) 中有一个 3d 数组,500 行,200 列超过 1000 帧。 计算所有 1000 帧中每个坐标的特定值事件百分比的最有效方法是什么?

例如,输入是一个 Value=1 的 3d 矩阵。 我需要在所有帧中找到帧中每个像素高于 1 的值的出现百分比。输出是一个二维数组,每个元素代表百分比 [100*(大于 1 的值)(帧上的所有值 i,j)]。

.

【问题讨论】:

    标签: python numpy multidimensional-array


    【解决方案1】:

    你可以试试:

    thresh = 1
    (array > thresh).mean(axis=-1)
    

    在样本数据上运行:

    np.random.seed(1)
    array = np.random.rand(3,4,1000)
    thresh = 0.3
    
    (array > thresh).mean(axis=-1)
    

    给你:

    array([[0.704, 0.708, 0.681, 0.694],
           [0.702, 0.717, 0.687, 0.683],
           [0.659, 0.701, 0.727, 0.697]])
    

    【讨论】:

    • 嗨!感谢重播!已经很有帮助了!但是,我如何从中获得百分比?它正在计算样本的平均值,对吧?
    • @SashaVasserfirer 这是0,1 的比例百分比。所以在样本中,你有大约 70% 的值>0.3,这从样本的分布来看是合理的。
    • 好的太好了!!现在我在我的代码中看到它正在工作!但是你能用更少的“pythonic”语言解释这种方法吗?我不明白它是如何工作的:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    相关资源
    最近更新 更多