Python3 从列表/数组中提取各种子集到一个新变量中

问题描述 投票:0回答:1

在 matlab 中,对于 1xM 数组,我们假设 a=1,1.5,2,2.5,...10

a=1:0.5:10;

只需 1 行代码即可轻松提取数组的多个子集 b=a([1:3 10:13]);

令b=1,1.5,2,5.5,6,6.5,7。如果想在 python3 和 numpy 中实现等效的功能,推荐的方法是什么?请注意,实际向量的长度为 1e7,要提取的子集具有不同的长度以及随机的初始和最终索引。

python-3.x numpy indexing vectorization
1个回答
0
投票

这是一个简短的答案,来自 CLI 中的 Python:

# generate your vector a, as only integers are allowed in range()
>>> b=[x*0.5 for x in range(2,21)]
>>> b
[1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5, 10.0]

# compose result subset from subsets
>>> b=a[1:4]+a[10:14]
>>> b
[1.5, 2.0, 2.5, 6.0, 6.5, 7.0, 7.5]

根据您的索引和限制,也可以使用这些来获取相应的最终答案

b=a[start_index:(start_index+4)]+a[end_index:(end_index+4)]

© www.soinside.com 2019 - 2024. All rights reserved.