Python数组项删除

Python数组项删除,python,arrays,Python,Arrays,我有一些Python方面的经验,但显然不是非常丰富的知识。简言之,我需要使用主阵列的1/5创建用于神经网络测试的验证阵列。因此,我能够将I%5==0的值附加到测试数组中。从那里,我仍然可以打印每5个值。现在,当我去删除值时,我得到了超出索引或范围的错误;我知道这是因为移除正在改变lenstring_arr的整体值。但是,我没有找到补偿的方法 下面是一个“虚拟”程序,用于解决我需要的问题,但不是我正在处理的实际问题。我需要一个验证阵列上的1/5,从主阵列上移除该1/5,并在主阵列上保留4/5以继续

我有一些Python方面的经验,但显然不是非常丰富的知识。简言之,我需要使用主阵列的1/5创建用于神经网络测试的验证阵列。因此,我能够将I%5==0的值附加到测试数组中。从那里,我仍然可以打印每5个值。现在,当我去删除值时,我得到了超出索引或范围的错误;我知道这是因为移除正在改变lenstring_arr的整体值。但是,我没有找到补偿的方法

下面是一个“虚拟”程序,用于解决我需要的问题,但不是我正在处理的实际问题。我需要一个验证阵列上的1/5,从主阵列上移除该1/5,并在主阵列上保留4/5以继续训练。下面,我尝试附加到另一个数组并删除这些值,以避免弄乱lenstring\u arr。。。不起作用

多谢各位

english_list = open('file')
for word in english_list.readlines():
word = word[:-1].lower()
if len(word) == 6:
    string_arr.append(word)
    target_arr.append(0)
print(string_arr)
print(len(string_arr))


for i in range(len(string_arr)):
    if i % 5 == 0:
        test_arr.append(string_arr[i])

for i in range(len(string_arr)):
    if i % 5 == 0:
        one_more.append(string_arr[i])

for i in range(len(string_arr)):
    if one_more[i] == string_arr:
        string_arr.remove(one_more[i])

print(test_arr)
print(len(test_arr))
print(string_arr)
print(len(string_arr))

您可以使用花式列表索引以稍微更紧凑的方式执行此操作:

small_cut = string_arr[::5]
remaining = [j for sub in zip(string_arr[1::5], string_arr[2::5], string_arr[3::5], string_arr[4::5]) for j in sub]

这是假设您使用的是普通python列表;如果您使用的是numPy阵列之类的东西,可能会有更简单的方法,也可能更高效。

您可以使用外部库吗?如果是这样,请从sklearnPerhaps检查此项,您希望更正代码的缩进,使其可运行并有意义。@JosepJoestar谢谢您,我知道sklearn为所有这些添加了一些简单性,但我必须创建单独的arraysNameError:名称“j”不是defined@brunodesthuilliers你拿到整条线了吗?呃。。。复制粘贴问题确实,我的坏xD