Python中:如何在嵌套在for循环中的if语句中使用索引号?
我的问题是,我有一个模拟数据集,它包含两个向量。因此,我有一个向量vX和一个向量vY。我给出的问题是一个类似于我的问题的示例,因为我的主代码太长。它是作为函数编写的,因为这是我最终需要的 现在的问题是向量是有序的。所以元素vX[0]应该对应于vY[0],依此类推。我的想法是,我需要所有属于某个区间的vX元素,获取它们的索引号,并用相应的vY值填充一个新向量 到目前为止,我已经写了以下内容:Python中:如何在嵌套在for循环中的if语句中使用索引号?,python,for-loop,if-statement,Python,For Loop,If Statement,我的问题是,我有一个模拟数据集,它包含两个向量。因此,我有一个向量vX和一个向量vY。我给出的问题是一个类似于我的问题的示例,因为我的主代码太长。它是作为函数编写的,因为这是我最终需要的 现在的问题是向量是有序的。所以元素vX[0]应该对应于vY[0],依此类推。我的想法是,我需要所有属于某个区间的vX元素,获取它们的索引号,并用相应的vY值填充一个新向量 到目前为止,我已经写了以下内容: vX = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] vY = [2, 14, 25,
vX = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
vY = [2, 14, 25, 12, 3, 52 , 5, 10, 7, 19]
vN = []
def(rndf(X, Y)):
for i in X:
if i in range(3, 6):
vN.append(vY[i])
else:
vN = vN
vnY = rndf(vX, vY)
在这种情况下,if语句仅适用于vX=3、4和5。然后我想得到vN向量中vY的对应值,即vN=[25,12,3]。
希望有人理解这个问题,能够帮助我。先谢谢你 使用
枚举
Ex:
vX = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
vY = [2, 14, 25, 12, 3, 52 , 5, 10, 7, 19]
def rndf(X, Y):
vN = []
for ind, i in enumerate(X):
if 3 <= i < 6: #better approach as mentioned by FHTMitchell
vN.append(vY[ind])
return vN
vnY = rndf(vX, vY)
print( vnY )
[25, 12, 3]
对于numpy:
# -*- coding: utf-8 -*-
import numpy as np
vX = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
vY = [2, 14, 25, 12, 3, 52 , 5, 10, 7, 19]
vX = np.asarray(vX)
vy = np.asarray(vY)
vN_ids = np.where((vX >= 3) & (vX <= 6))[0]
vN = vY[vN_ids[0]:vN_ids[-1]]
print (vN)
#-*-编码:utf-8-*-
将numpy作为np导入
vX=[1,2,3,4,5,6,7,8,9,10]
vY=[2,14,25,12,3,52,5,10,7,19]
vX=np.asarray(vX)
vy=np.asarray(vy)
vN_id=np。其中((vX>=3)和(vX)如果I在范围(3,6)
中,我将用如果3替换
# -*- coding: utf-8 -*-
import numpy as np
vX = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
vY = [2, 14, 25, 12, 3, 52 , 5, 10, 7, 19]
vX = np.asarray(vX)
vy = np.asarray(vY)
vN_ids = np.where((vX >= 3) & (vX <= 6))[0]
vN = vY[vN_ids[0]:vN_ids[-1]]
print (vN)