【发布时间】:2018-04-16 17:41:04
【问题描述】:
(Python) 我有以下数组
x=[1,2,3,4,5,6]
我想要这个
x=[[1,2],[2,3],[3,4],[4,5],[5,6]]
我用过这个功能
def split(arr, size):
arrs = []
while len(arr) > size:
pice = arr[:size]
arrs.append(pice)
arr = arr[size:]
arrs.append(arr)
return arrs
但它只会生成这个
x=[[1,2],[3,4],[5,6]]
【问题讨论】:
-
如果要寻找性能,请使用 NumPy strides 或
broadcasting- stackoverflow.com/questions/40084931/… -
你有一个简单的错误。将
arr = arr[size:]更改为arr = arr[1:] -
你说
x是一个数组,但是显示一个列表。该代码还生成列表。这是列表问题还是 numpy 数组问题?我很想编辑标签,删除 'arrays'、'numpy' 和 'split' -
@JeffLearman 我很确定它不应该是
size-1尽管我同意 OP 没有指定。arr = arr[1:]为所有大小值返回类似类型的输出(即,相同长度的列表,值连续)。 -
@pault:也许你是对的:这取决于
size的意思。size-1在 size 为 2 时有效,并且在 size 为 >2 时执行一些可能有意义的事情。
标签: python arrays numpy split repeat