将numpy数组拆分为固定长度

时间:2021-01-28 10:13:13

标签: python-3.x numpy split numpy-ndarray

我有一个 1d-numpy 数组,我想将其拆分为多个固定长度的子数组(注意它 len)。 当数组的长度不是 len 的乘积时,我希望它采用数组的最后 len 元素。 使用 numpy 函数 array_split 时,我们得到:

x = np.arange(8.0)
print(np.array_split(x, 3))

输出为:

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

但我想要:

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

有没有人知道这样做的内置函数?

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为这可能是你最好的选择 -

import numpy as np

x = np.arange(8)
c = 3
split = np.array_split(x, c)[:-1] + [x[-int(round(len(x)/c)):]]
print(split)

给予 -

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

答案 1 :(得分:0)

使用长度参数和列表推导式:

with t as (
select 'àäêsgdkf fdd' col1 from dual union all
select 'mno¬ijk' col1 from dual union all
select 'abc fdd' col1 from dual
)
select col1
from t
where length(col1) < lengthb(col1)
;

COL1
----------
àäêsgdkf fdd
mno¬ijk

*(不要使用len关键字,因为它也是python内置的)

相关问题