Python 如何正确构建此列表:

Python 如何正确构建此列表:,python,numpy,Python,Numpy,我应该如何正确地编写此列表:我试图从火车组X_tr中仅保留numpy数组的.std()大于10的图像,但我需要跟踪索引以返回y_tr中的相应标签: (X_tr,y_tr)=(np.array([i[i.std()>=10]表示X_tr.numpy()]中的i)[0],y_tr[i.iloc()].numpy()) 为什么错误消息告诉我我是int,我应该是火车组X_tr的图像,作为numpy对象 AttributeError回溯(最近一次调用) 在里面 ---->1(X_tr,y_tr)=(np

我应该如何正确地编写此列表:我试图从火车组X_tr中仅保留numpy数组的.std()大于10的图像,但我需要跟踪索引以返回y_tr中的相应标签:

(X_tr,y_tr)=(np.array([i[i.std()>=10]表示X_tr.numpy()]中的i)[0],y_tr[i.iloc()].numpy())
为什么错误消息告诉我我是int,我应该是火车组X_tr的图像,作为numpy对象

AttributeError回溯(最近一次调用)
在里面
---->1(X_tr,y_tr)=(np.array([i[i.std()>=10]表示X_tr.numpy()]中的i)[0],y_tr[i.iloc()].numpy())
AttributeError:“int”对象没有属性“iloc”
我还尝试:


索引列表=[]
索引=0
X_tr=X_tr.numpy()
X_val=X_val.numpy()
y_tr=y_tr.numpy()
y_val=y_val.numpy()
对于范围内的i(len(X_tr)):
如果X_tr[i].std()10)
X_tr,y_tr=X_tr[指数],y_tr[指数]
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
1指数=np.其中(np.标准(X_tr,轴=1)>10)
---->2x_-tr,y_-tr=X_-tr[指数],y_-tr[指数]
包装中的~/.pyenv/versions/lewagon/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py(*args,**kwargs)
199“调用目标,如果出现类型错误,则返回调度程序。”
200次尝试:
-->201返回目标(*args,**kwargs)
202除外(类型错误、值错误):
203#注意:将_转换为_急切_张量当前会引发一个值错误,而不是
~/.pyenv/versions/lewagon/lib/python3.8/site-packages/tensorflow/python/ops/array\u ops.py in\u slice\u helper(tensor,slice\u spec,var)
984新的_轴_掩码|=(1 986检查索引)
987开始。追加
988结束。追加(s+1)
~/.pyenv/versions/lewagon/lib/python3.8/site-packages/tensorflow/python/ops/array\u ops.py in\u check\u index(idx)
863#TODO(slebedev):索引器在这里似乎更合适,但它
864将打破“分片”合同。
-->865 raise TypeError(_SLICE_TYPE_ERROR+”,got{!r}).format(idx))
866
867
TypeError:只有整数、切片(`:`)、省略号(`…`)、tf.newaxis(`None`)和标量tf.int32/tf.int64张量是有效的索引,Get数组([0,0,0,…,14999,14999,14999])
以及:

index=np.where(np.std(X_tr.numpy(),轴=1)>10)
X_tr,y_tr=X_tr.numpy(),y_tr.numpy()
X_tr,y_tr=X_tr[指数],y_tr[指数]
---------------------------------------------------------------------------
索引器回溯(最后一次最近调用)
在里面
1索引=np,其中(np.std(X_tr.numpy(),轴=1)>10)
2 X_tr,y_tr=X_tr.numpy(),y_tr.numpy()
---->3 X_tr,y_tr=X_tr[指数],y_tr[指数]
索引器:数组的索引太多
我的X_tr看起来像这样,目前np.where不起作用:



列表理解的目的是使代码更加清晰。您的代码几乎不可能理解。我将单独计算索引

indices = np.where(np.std(x, axis=1) > 10)
x, y = x[indices], y[indices]

我想这就是你想做的。

请确保以更清晰的方式问你的问题,并给出上下文列表中的
I
理解力已耗尽,我们将在数学中说它已被整合,因此它与元组第二个元素中的
I
无关。嗨,迈克,但是可以保持tra吗检查i.std()>=10的索引,并将索引列表传递给相同列表理解范围内的y\u tr标签?只需将
i
转换为实际整数…我们将其称为
j
。也就是说,不是
X\u tr.numpy()
,不管它是什么,都是可枚举的?所以让
j
作为它的索引。所以理解的循环部分类似于
对于范围内的j(X_tr.numpy().shape[0])
--(我广泛使用numpy,但实际上不知道
.numpy()
这样做,因为我还不喜欢
tf.Tensor
之类的东西,但只要让
j
作为枚举建立的索引即可)。然后你可以用
X_tr.numpy()[j]替换你语句中的
I
。我想你是指y_tr.numpy()[j],标签,但我不知道这个循环如何在列车组上找到匹配的标签和功能…这就是我试图做的,除了我的x包含需要计算.std()的数组外,我需要计算.std()在x的每个元素上…x的维度是什么?我假设它是NxM,在这里你要计算N个标准偏差,每个M元素。x的维度是(15000,65,65,7)这是有效的!是的:
index=np.where([I[I.std()>=10]。x_tr.numpy()]中I的all())x_tr,y_tr=x_tr.numpy(),y_tr.numpy(),y_tr=x_tr[index],y_tr[索引]