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