最有效/ pythonic的方法来计算2D Numpy数组的特定子集

时间:2016-03-27 05:13:50

标签: python arrays numpy

所以这是任务的细分:

1)我有一个197x10的2D numpy阵列。我通过扫描并识别感兴趣的特定细胞(选择这些细胞的标准并不重要。)这些细胞不限于基质的一个特定区域。

2)我有3247个具有相同尺寸的其他2D Numpy阵列。对于这些其他阵列中的单个阵列,我需要获取步骤1)指定的感兴趣的单元格位置并取所有这些的平均值(将它们全部加在一起并除以感兴趣的单元格位置的数量。)

3)我需要为其余3246个剩余阵列重复2)。

"标记"最好/最有效的方法是什么?感兴趣的细胞并在3247阵列中快速查看它们?

- 较小的集合上的示例 -

让我们说给出一个2x2数组:

[1,2]
[3,4]

感兴趣的细胞可能是包含1和4的细胞。因此,对于以下数组:

[5,6]
[7,8]

[9,10]
[11,12]

我想拿(5 + 8)/ 2并在某处记录。
我还想拿(9 + 12)/ 2并记录下某个地方。

修改

现在,如果我想以pythonic方式(使用Numpy)以下列标准找到这些感兴趣的细胞:

- 在第一行开始并检查第一个元素
- 继续沿着该列标记满足条件的元素标记的行 - 在第一个不满足条件的元素上停止然后转到下一列。

所以基本上现在我想要保持行(对于特定列)连续感兴趣的单元格。因此对于1),如果数组看起来像:

[1 2 3]  
[4 5 6]  
[7 8 9]

1,4,2,8和3是有意义的,我只标记1,4,2,3,因为5取消了8被包括在内。

2 个答案:

答案 0 :(得分:1)

Pythonic方式:

answers = []
# this generates index matrix where the condition is met.
idx = np.argwhere( your condition of (1) matrix comes here)

for array2d in your_3247_arrays:
    answer = array2d[idx].mean()
    answers.append()
print(answers)

答案 1 :(得分:0)

以下是一个例子:

<div class="container" id="about_container">
    <div class="row" id="row_about_1">
        <div class="col-lg-2 col-md-2 col-xs-2 col-sm-2"></div>

        <div class="col-lg-8 col-md-8 col-xs-8 col-sm-8 bubble">

            <div class="abt_txtcontainer">
                <p class="abt_maintext">Heading</p>
                <p class="abt_subtxt">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s
                </p>

                <p class="abt_maintext">Heading</p>
                <p class="abt_subtxt">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s
                </p>


                <p class="abt_maintext">Heading</p>
                <p class="abt_subtxt">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s
                </p>
            </div>
        </div>

        <div class="col-lg-2 col-md-2 col-xs-2 col-sm-2"></div>
    </div>

    <div class="row" id="row_about_2">
        <div class="col-lg-2"></div>
        <div class="col-lg-8">
            <img src="http://i.imgur.com/5T5N5Vn.png" class="about_bg img-responsive">
        </div>
        <div class="col-lg-2"></div>

    </div>


</div>