【问题标题】:create a loop inside a loop in python在python中的循环内创建一个循环
【发布时间】:2016-10-17 02:40:57
【问题描述】:

我正在尝试使用此程序获取 211 个数组的列表 (phi0ex),每个数组包含 251*251 个元素 我得到的只是 251 个元素的数组列表,请帮助

data=loadtxt('data.csv',delimiter=',')
data1=data.transpose()
ngrains=loadtxt('nombre_grain.csv',delimiter=',')
phi0ex1=211*[zeros(shape(251*251))]
gr1=zeros(shape=(251,251))
for k in range(0,len(ngrains)):
for i,j in enumerate(data1):
    for s in range(0,251):
        gr1[i]=where(s==ngrains[k],1,0)
phi0ex1[k]=gr1
print phi0ex1
#

【问题讨论】:

  • 第一个循环体需要缩进。
  • 这个问题不清楚,能不能把你想要的东西说清楚一点?
  • 我有一个列表,其中包含我通过“ngrains”文件加载的 210 个不同值。然后另一个文件“数据”包含 250 * 250 个元素,我想查看“数据”的每个元素,看看它是否等于“ngrains”的第一个元素,如果不是,则将其替换为一个,而不是零。然后我得到的 250*250 的数组包含两个零或我想把它放在另一个数组列表(phi0ex)中的数组。等等“ngrains”中的所有值,我希望我能解释清楚,谢谢
  • 我找到了解决方案,谢谢你们表现出兴趣,完全是函数 where() 自己进行迭代(我不知道)没有必要把它放在另一个循环中,只有“ngrains 的循环才能解决问题”。

标签: python arrays csv


【解决方案1】:

我找到了解决方案,谢谢你们表现出兴趣,函数 where() 自己进行迭代(我不知道)没有必要把它放在另一个循环中,只有循环结束“ ngrains 可以解决问题。

data=loadtxt('data.csv',delimiter=',')
data1=data.transpose()
ngrains=loadtxt('nombre_grain.csv',delimiter=',')
phi0ex=len(ngrains)*[zeros(shape(250))]

for k in range(len(ngrains)):
    print ngrains[k]    
    phi0ex[k]=where(data1==ngrains[k],1,0)

print phi0ex

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-16
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多