【问题标题】:Filter and sum different columns in a numpy array过滤和求和 numpy 数组中的不同列
【发布时间】:2014-10-09 22:55:53
【问题描述】:

我有一个大型 numpy 数组 data,我希望按一列过滤 [:,8] <= radius 并获得不同列的总和 [:,7]

到目前为止,我有以下返回“无效切片”错误。

>>> data.slice
(4700, 9)

>>> np.sum(data[np.where(data[:,8] <= 50):,7])
IndexError: invalid slice

我对 python 很陌生,所以似乎真的无法弄清楚我在这里做错了什么。任何想法或解释将不胜感激。

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:

    不需要np.where 电话。

    data = np.random.normal(size=(20, 2))
    np.sum(data[data[:,0] < 0, 1])
    

    在这个例子中,我想要data[:,0] &lt; 0True 的行,我想要列1。因此,只需将它们切片并取总和即可。

    【讨论】:

    • 非常感谢您。在那里让自己陷入了一个令人困惑的状态。没有意识到我可以用那种方式过滤。非常感谢。
    • 其实,经过一番测试,这似乎不起作用。 data[data[:,8] &lt;= radius, 7] 不会从第 7 列返回值数组,而是仅返回一个值。
    猜你喜欢
    • 2018-02-15
    • 2013-04-22
    • 2014-09-30
    • 2019-01-31
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    相关资源
    最近更新 更多