我有一个不同长度的大型数组的列表。我想找到每个大于420的数组的位置。例如,[size =(134,7),size =(620,7),size =(800,7),......] >
我的代码在下面
luajit.exe %~dp0%~n0.lua
我收到此错误:
for x in x_train:
if len(x)>420:
print(x_train.index(x))
什么是正确的解决方案?
答案 0 :(得分:1)
这是警告某些东西已被弃用,但这不是错误。我非常怀疑您的代码块会产生此警告,并且可能是某些导入的库或其他代码引起的。
无论如何,关于您的代码,它效率极低,因为一旦找到x
,您就会在列表中再次寻找它。使用enumerate
来获取索引:
for i, x in enumerate(x_train):
if len(x) > 420:
print(i)
通过列表理解,您可以存储所有索引:
indexes = [i for i, x in enumerate(x_train) if len(x) > 420]
答案 1 :(得分:0)
让我们使用列表理解来解决它。
#Create a sample list of arrays of arbitrary length.
myList = [np.full((134,7), 10), np.full((620,7),0), np.full((800,7),0), np.full((150,7),0), np.full((500,7),0)]
indexes_gt_420 = [i for i in range(len(myList)) if len(myList[i]) > 420]
indexes_gt_420
[1, 2, 4]