是否可以在 numpy 中按间隔 n 系统地对长度为 m 的一维数组进行切片?假设我有一个包含 1000 个值的列表,我可以轻松地将其分成 10 个包含 100 个值的列表吗?
问问题
312 次
2 回答
1
您可以同时使用两者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 的子数组。
于 2020-10-12T05:20:12.100 回答
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])]
于 2020-10-15T23:57:57.110 回答