【发布时间】:2016-03-21 22:13:20
【问题描述】:
这是我的问题:
鉴于:
数组 A 具有这种形状:12000,3 和
数组 B 这个形状:150,
A 的第一列包含时间值,B 也包含时间值,采样率不同,因此它们不完全匹配。
问题: 创建一个形状为 150,3 的数组 C,其中包含数组 A 的行,其中第一列位于数组 B 中一个时间点周围的时间窗口内。时间窗口由“之前”时间和“之后”时间定义'
解决方案:
它适用于使用列表推导的一维列表,例如: C = [e for e in A if e > (B - before) 和 e
但是用数组尝试这个是行不通的。
我从尝试使用逻辑索引的整数数组开始,但这已经失败了。要么我得到全部 False,要么得到一条错误消息。
A = np.array([1,2,3,4,5,6])
B = np.array([1,3,5])
C = A[A in B]
C = A[A in B.any]
C = A[A == B]
np.select 也是如此。
理想情况下应该是这样的:
C = A[A > (B.any-before) and A < (B.any+after)]
非常感谢您的帮助!
【问题讨论】:
-
对不起,我有点病了,弄错了:请用B代替D
-
或者你可以edit它。 :-)
-
完成了——多么有用的链接:)
标签: arrays numpy range match elements