如何在Python中分割字符串数组?解决numpy.split报错问题
解决方法
错误原因很明确:np.split() 只能处理numpy数组,你传入的是普通Python列表,所以会触发'list' object has no attribute 'shape'的报错。以下两种方法都能解决问题,且保留数组的随机打乱状态:
方法一:转换为numpy数组后分割
先把打乱后的列表转成numpy数组,再用np.split()分割:
from random import randint import numpy as np arr = ["unit","2","3","4","5","6"] print("Original arr: ", arr) np.random.shuffle(arr) print("Shuffled arr: ", arr) # kfj=input() # 保留原代码的输入逻辑(如果需要) # 转换为numpy数组 np_arr = np.array(arr) newarr = np.split(np_arr, 2) print("Split result: ", newarr)
方法二:用Python原生切片分割(无需numpy)
如果不需要numpy数组,直接用列表切片更简单,完全依赖Python原生语法:
from random import randint import numpy as np arr = ["unit","2","3","4","5","6"] print("Original arr: ", arr) np.random.shuffle(arr) print("Shuffled arr: ", arr) # kfj=input() # 计算分割索引,分成均等的两部分 split_point = len(arr) // 2 newarr = [arr[:split_point], arr[split_point:]] print("Split result: ", newarr)
两种方法都会保留np.random.shuffle()后的打乱状态,你可以根据后续是否需要numpy数组来选择对应的方案。
内容的提问来源于stack exchange,提问作者Hydra_Ali
相关产品推荐
相关产品推荐

