数组中小于curren的所有值的总和

2024-04-25 00:33:35 发布

您现在位置:Python中文网/ 问答频道 /正文

寻找一种不循环的方法来获取相同间隔内小于当前值但也在定义间隔内的所有值。你知道吗

我有8760行数据要排序,希望有一个比循环更短的方法。对于一些循环代码,执行需要5分钟以上

x=np.array([[250,1,1],[300,.5,1],[100,2,1],[200,.75,1],[150,.25,1],[50,.5,2]])

我试图对第一个元素(250,300,100,50)求和,其中第二个元素小于当前值,第三个元素等于当前值的第三个元素。你知道吗

示例

为了 [250,1,1]

我只想找到300+200+150,因为它们有1作为第三个元素,.5.75.25的第二个元素小于1。每行都需要继续

对于第二个元素[300,.5,1],它会找到一个150的值,因为这是唯一一个索引更大的元素,第三个元素是1,值小于.5。你知道吗

编辑:修复最小示例


Tags: 数据方法代码元素编辑示例间隔定义
1条回答
网友
1楼 · 发布于 2024-04-25 00:33:35

可以使用布尔掩蔽吗?你知道吗

import numpy as np

x = np.array([[250,1,1],[300,.5,1],[100,2,1],[200,.75,1],[150,.25,1],[50,.5,2]])

mask = (x[:, 1] < x[:, 0]) & (x[:, 2] == np.floor_divide(x[:, 0], 100))
np.sum(x[mask, 0])

相关问题 更多 >