假设a = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
和s = [3, 3, 9, 3, 6, 3]
。我正在寻找最好的方法来重复a[i]
精确的s[i]
时间,然后以的形式放置一个扁平数组b = [0.1, 0.1, 0.1, 0.2, 0.2, 0.2, 0.3, 0.3, 0.3, 0.3, ... ]
。
我想尽可能快地执行此操作,因为我必须执行多次。我正在使用Python和numpy,并且数组定义为numpy.ndarray。我周围中搜索和了解repeat
,tile
并column_stack
能很好地被用来重复每个元素n
次,但我想每个人重复不同的时间。
一种方法是:
a = hsplit(a, 6)
for i in range(len(a)):
a[i] = repeat(a[i], s[i])
a = a.flatten()
我想知道是否有更好的方法。
这就是numpy.repeat
它的作用:
>>> a = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6])
>>> s = np.array([3, 3, 9, 3, 6, 3])
>>> np.repeat(a, s)
array([ 0.1, 0.1, 0.1, 0.2, 0.2, 0.2, 0.3, 0.3, 0.3, 0.3, 0.3,
0.3, 0.3, 0.3, 0.3, 0.4, 0.4, 0.4, 0.5, 0.5, 0.5, 0.5,
0.5, 0.5, 0.6, 0.6, 0.6])
在纯Python中,您可以执行以下操作:
>>> from itertools import repeat, chain, imap
>>> list(chain.from_iterable(imap(repeat, a, s)))
[0.1, 0.1, 0.1, 0.2, 0.2, 0.2, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.4, 0.4, 0.4, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.6, 0.6, 0.6]
但是,当然它将比其NumPy慢得多:
>>> s = [3, 3, 9, 3, 6, 3]*1000
>>> a = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]*1000
>>> %timeit list(chain.from_iterable(imap(repeat, a, s)))
1000 loops, best of 3: 1.21 ms per loop
>>> %timeit np.repeat(a_a, s_a) #a_a and s_a are NumPy arrays of same size as a and b
10000 loops, best of 3: 202 µs per loop
我想知道是否可以编辑在循环中处理的当前对象 我正在处理一组对象,我想仔细查看并在数据库中查找与该问题对象相关联的答案。因此,对于每个问题,去获取答案对象,并更新我的循环中的当前>,以便我可以在其他地方输出/处理。
我想通过删除所有具有相同值的行,但无法获取。
我每次都得到10个相同的结果:
假设使用JSON.parse我在一个数组中一起得到了4个可能的答案(像选择题测验)。那个数组的每个值都有一个“特征”(我不知道还能怎么称呼它)。我想通过数组的每个值寻找特定的特征,并过滤掉那些不符合条件的值。 示例数组: 数组的第一个值(1)是正确答案,因为它的“特征”通过说它是“真”来指示它。我想让控制台打印出正确的数值。 示例:正确答案为:1 谢谢你的任何帮助
我正在试图理解为什么下面的代码会像它那样运行。具体而言,为什么第一个表达式会输出的完整和最终版本?我意识到这和吊装有关(也许?)或者其他一些我没有完全理解的概念。只是在网上搜索这个是很有挑战性的,因为我没有合适的词库来搜索我想知道的东西。 我在为自己编写代码时发现了这一点,其中我希望通过for-loop看到对象在每次迭代时的状态。我很惊讶地看到输出到控制台的对象在每一个回合都是一样的;该状态是整个
问题内容: 我试图弄清楚如何为给定列中的每个不同值重置mysql中的行号。最好用一个例子来解释一下: 我有一组进行客户访问的用户,每个客户可能会被访问多次,并且我的表记录了访问的日期(但不是这是第一次,第二次,第三次访问)。所以我的桌子看起来像: 我要查找的是给定日期段内进行了多少次(例如)第二次访问。因此,在上面的数据中,有3次首次访问和2次第二次访问。 我假设我需要使用类似@rownum功