我有一个 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.])]
有没有人知道这样做的内置函数?
谢谢!
答案 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内置的)