基于区间的 numpy 数组?

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

是否可以在 numpy 中按间隔 n 系统地对长度为 m 的一维数组进行切片?假设我有一个包含 1000 个值的列表,我可以轻松地将其分成 10 个包含 100 个值的列表吗?

python numpy slice numpy-slicing program-slicing
2个回答
2
投票

您可以同时使用

np.array_split()
np.split()
,它们实际上是相同的,但有一点注释(根据
np.array_split()

来自文档:

x = np.arange(8.0)

np.array_split(x, 3)

#Result
[array([0.,  1.,  2.]), array([3.,  4.,  5.]), array([6.,  7.])]

将数组拆分为多个子数组。

请参阅拆分文档。之间唯一的区别 这些功能是 array_split 允许indices_or_sections 不等分轴的整数。对于一个数组 长度 l 应该被分成 n 部分,它返回 l % n 大小为 l//n + 1 的子数组,其余大小为 l//n。


1
投票

array_split 也允许以不等间距拆分,如果这满足您的需求

ar = np.arange(0, 20, dtype='int')

s = [2, 7, 12, 17]

np.array_split(ar, s)
Out[80]: 
[array([0, 1]),
 array([2, 3, 4, 5, 6]),
 array([ 7,  8,  9, 10, 11]),
 array([12, 13, 14, 15, 16]),
 array([17, 18, 19])]
© www.soinside.com 2019 - 2024. All rights reserved.