【问题标题】:Plus or minus an array by an array and store in a dictionary通过数组加或减数组并存储在字典中
【发布时间】:2018-11-19 01:02:59
【问题描述】:

我对这些数据进行了大量的预处理和数学运算,以得到两个大小相同的 3xN numpy 数组。 A 和 B。

A = 已分类为标签以预测 B 的整数。 B = 时间序列数据。

我也有 C,它只是 B[1:]

A 和 B 在各自的时间步长上相等,我想不出更好的方法来列出 B 的下一个时间步长,所以我有 A[0:-1], B[0: -1] 和 C[1:])

我知道 A + 或 - B 在 C 中总是 == 到至少 1 个整数。

例子:

如果 A = [2,3,4] 和 B = [5,2,1] 我知道 C 中至少有 1 个是 7,8,1,3,或者这些数字的任何其他组合 +或 - 彼此。

如何创建一个简单的函数来执行此操作并检查它是否是 == 到 C,然后将其作为键存储在字典中?目标是在完成后创建一个神经网络来评估新数据。

【问题讨论】:

  • 可以通过路口实现吗?你能展示出你想要的结果吗?
  • 不知道这甚至是一件事。我才刚接触 Python 一年,但这非常有帮助,并且极大地推动了正确的方向,我会玩弄它。谢谢你。但具体来说,如果您要在交叉路口执行此操作,您认为最好的方法是什么?
  • 假设我为 3 个数字 A[0] + B[0]、A[1] + B[0]、A[0] - B[ 的每个可能组合都有一个标签0] 等等...我想做那个操作,检查每个组合的结果是否实际上是 C 中的 3 个整数之一,如果是,则将其存储在带有标签名称的字典中。由于它是 + 或 - 每个整数,假设标签是 A - B 的 dAB 和 B - A 的 dBA 等等。标签名称无关紧要,因为它们是变量,但具体操作对我来说有点混乱。有没有一种简单的方法可以在 Python 中使用该交集函数来做到这一点?
  • 对于组合检查这个:stackoverflow.com/questions/12935194/… --- 对于交叉检查这个:stackoverflow.com/questions/3697432/…
  • 这将引导我做我想做的事,非常感谢!

标签: python pandas numpy data-science preprocessor


【解决方案1】:

举个例子,如果我明白你在找什么:

a = [2,3,4]
b = [5,2,1]
c = set(b[1:])

sums = set([ aa + bb for aa in a for bb in b ])
subs1 = [ (aa - bb) for aa in a for bb in b if (aa - bb) > 0]
subs2 = [ bb - aa for bb in b for aa in a if (bb - aa) > 0]
subs = set(subs1 + subs2)

print(sums)
print(subs)
print(c)

print(len(sums & c)) #=> 0 c does not contains any of sums
print(len(subs & c)) #=> 2 c contains two of subs

【讨论】:

  • 哇,非常感谢。我唯一缺少的是我需要 A + 或 - B 然后检查 C 中的交叉点,将其存储为带有标签 A+B 或 A-B 或 B-A 或其他任何内容的字典。举个例子,因为 a = [2,3,4] 和 b = [5,2,1] 我需要它来查找 2 + 5 或 2-5 并检查 3 或 7 是否在 C 中。但是这个肯定非常有帮助。你摇滚!
  • 编辑:doh! 我花了一分钟才真正阅读和理解代码。先生,您是一位绅士和一位学者。我仍在学习 Python,只是意识到这正是这段代码的作用。 :-) 一百万谢谢。
猜你喜欢
  • 2018-08-17
  • 1970-01-01
  • 2016-06-17
  • 1970-01-01
  • 2019-09-20
  • 2010-11-28
  • 2020-10-12
  • 2021-12-15
  • 2022-01-13
相关资源
最近更新 更多