Arrays 如何在python中使用split函数按降序拆分数组列表?

Arrays 如何在python中使用split函数按降序拆分数组列表?,arrays,python-3.x,numpy,split,Arrays,Python 3.x,Numpy,Split,我试图从用户获取数组输入,并将数组拆分为子数组,每个子数组上有3个元素。如果数组中的元素数不能被3平均整除,我想将较小数组的大小从第一个子数组增加1 我尝试使用拆分函数,但这会使子数组的顺序增加。我要按降序排列 将numpy导入为np def阵列_列表(x): 原始列表=[] 对于范围(0,x)内的i: abc=输入(“输入元素:”) 原始列表。附加(abc) 原始列表。排序() 返回(原始列表) x=int(输入(“输入元素编号:”) 输入=数组\列表(x) 打印(“输入=”,输入) 打印(“

我试图从用户获取数组输入,并将数组拆分为子数组,每个子数组上有3个元素。如果数组中的元素数不能被3平均整除,我想将较小数组的大小从第一个子数组增加1

我尝试使用拆分函数,但这会使子数组的顺序增加。我要按降序排列

将numpy导入为np
def阵列_列表(x):
原始列表=[]
对于范围(0,x)内的i:
abc=输入(“输入元素:”)
原始列表。附加(abc)
原始列表。排序()
返回(原始列表)
x=int(输入(“输入元素编号:”)
输入=数组\列表(x)
打印(“输入=”,输入)
打印(“输出=,np.split(输入,[3]))
我的代码执行如下:

Input =  ['11', '13', '15', '23', '34', '7', '77']  
Output =  [array(['11','13','15']),array(['23','34','7','77']]
我希望我的输出为:

Input =  ['11', '13', '15', '23', '34', '7', '77']    
Output = [array(['11','13','15',23], array(['34','7', '77']  

此外,我还需要排序方面的帮助第一个问题是您需要将编号
abc
转换为
int
(就像您对
x
所做的那样)以对编号进行排序。要根据需要拆分阵列,可以在拆分之前反转阵列

将numpy导入为np
def阵列_列表(x):
原始列表=[]
对于范围(0,x)内的i:
abc=int(输入(“输入元素:”)
原始列表。附加(abc)
原始列表排序(反向=真)
返回原始列表
x=int(输入(“输入元素编号:”)
输入=数组\列表(x)
打印(“输入=”,输入)
如果x>=3,则输出=np.数组_拆分(输入,int(x/3)),否则输入
打印(“输出=”,输出)

第一个问题是您需要将数字
abc
转换为
int
(就像您对
x
所做的那样)以对数字进行排序。要根据需要拆分阵列,可以在拆分之前反转阵列

将numpy导入为np
def阵列_列表(x):
原始列表=[]
对于范围(0,x)内的i:
abc=int(输入(“输入元素:”)
原始列表。附加(abc)
原始列表排序(反向=真)
返回原始列表
x=int(输入(“输入元素编号:”)
输入=数组\列表(x)
打印(“输入=”,输入)
如果x>=3,则输出=np.数组_拆分(输入,int(x/3)),否则输入
打印(“输出=”,输出)
但是等等,
array\u split
已经这样做了:

In [33]: np.array_split(x,2)                                                    
Out[33]: 
[array(['11', '13', '15', '23'], dtype='<U2'),
 array(['34', '7', '77'], dtype='<U2')]
[33]中的
:np.array\u split(x,2)
出[33]:
[数组(['11','13','15','23',],数据类型=]
但是等等,
array\u split
已经这样做了:

In [33]: np.array_split(x,2)                                                    
Out[33]: 
[array(['11', '13', '15', '23'], dtype='<U2'),
 array(['34', '7', '77'], dtype='<U2')]
[33]中的
:np.array\u split(x,2)
出[33]:

[array(['11',13',15',23',dtype=”您可能需要自己计算拆分,并使用
np.array\u split
。您能帮我一下吗?您使用了
np.split(x,[3])
np.array\u split(x,2)
做你想要的。你可能需要自己计算分割,并使用
np.array\u split
。你能帮我一下吗?你使用了
np.split(x,[3])
np.array\u split(x,2)
做你想要的。我想要最后的输出=[array([77,34,23,15]),array([13,11,7])]刚刚修改了我的回答我在你的代码中遇到错误。它说输入中的l的输出=[l[::-1][::-1]TypeError:“int”对象不可下标我认为它在问题中给出的输入数组上运行良好。再次修改为更大的Xtank you Matt。这帮助我解决了拆分数组的排序和降序问题。我感谢您的贡献。我希望最后的输出为Output=[array([77,34,23,15]),array([13,11,7])刚刚修改了我的回答我在你的代码中遇到错误。它说输入中的l的输出=[l[::-1][::-1]TypeError:“int”对象不可下标我认为它在问题中给出的输入数组上运行良好。再次修改为更大的xThank you Matt。这帮助我解决了拆分数组的排序和降序问题。我感谢您的贡献。
In [25]: s = x.shape[0]                                                         
In [26]: cnt = s//3                                                             
In [27]: extra = s%3                                                            
In [28]: alist = [3+1]*extra + [3]*(cnt-extra)                                  
In [29]: alist                                                                  
Out[29]: [4, 3]
In [33]: np.array_split(x,2)                                                    
Out[33]: 
[array(['11', '13', '15', '23'], dtype='<U2'),
 array(['34', '7', '77'], dtype='<U2')]