gpt4 book ai didi

python - python itertools.imap(func,p,q) 可以对索引进行条件测试(例如仅获取具有奇数索引的元素)吗?

转载 作者:行者123 更新时间:2023-11-30 23:36:34 24 4
gpt4 key购买 nike

我有以下数组

>>> a
array([0, 8, 0, 8, 0, 8])
>>> b
array([0, 6, 0, 6, 0, 6])

它们代表一组复数的实部和虚部。

我可以使用以下代码将它们重新格式化为 numpy.complex 数据类型

>>> [x for x in itertools.imap(complex,a,b)]
[0j, (8+6j), 0j, (8+6j), 0j, (8+6j)]

但是我真正想要得到的只是具有奇数索引的元素:

[(8+6j),(8+6j),(8+6j)]

有没有简单的方法可以实现这一点?

最佳答案

>>> import numpy as np
>>> a = np.array([0, 8, 0, 8, 0, 8])
>>> b = np.array([0, 6, 0, 6, 0, 6])
>>> np.vectorize(complex)(a, b)[1::2]
array([ 8.+6.j, 8.+6.j, 8.+6.j])

这将是最好的方法,但为了完整性,itertools 解决方案将是:

>>> from itertools import imap, islice
>>> list(islice(imap(complex,a,b), 1, None, 2))
[(8+6j), (8+6j), (8+6j)]

关于python - python itertools.imap(func,p,q) 可以对索引进行条件测试(例如仅获取具有奇数索引的元素)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16439824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com