我有一个满是零的大数组,简单地定义为:
BigArray = np.zeros((100,1000,1000),np.float16)
然后我有一个3D卷,我在python外部随机旋转它,每次旋转时我都想将文件导入python并将其添加到数组的下一位。我目前拥有以下代码:
n = 0
while n < 99:
Zaxisangle = randint(0,360)
Yaxisangle = randint(0,360)
Xaxisangle = randint(0,360)
os.system('rotatevol -angles {},{},{} -input {} -output {}'.format(Zaxisangle, Yaxisangle, Xaxisangle,
MRCfilewithextension, MRCforoutput))
particledata = mrcopen(MRCforoutput)
if n < 10:
ArtTomo[:, 0:100, (100*(n+1))-100:100*(n+1)] = particledata
n = n+1
else:
n = n+1
在本示例中,我们可以将其简化为以下内容:
BigArray = np.zeros((100,1000,1000),np.float16)
particledata = np.random.rand(100,100,100)
n = 0
while n < 99:
if n < 10:
ArtTomo[:, 0:100, (100*(n+1))-100:100*(n+1)] = particledata
n = n+1
elif: 10 < n < 20
ArtTomo[:, 100:200, (100*(n+1))-100:100*(n+1)] = particledata
n = n+1
else:
n = n+1
然后我会为每一行写很多elif语句。因为我正在用不同的文件遍历数组,所以我不能简单地用“in range(01000100)”语句填充数组
虽然我可以写出所有的elif语句,但我觉得必须有一种更有效的方法来编写这段代码,我只是不够好,无法看到它。其他人能用更好的方式写这个吗?或者我只能写10个elif语句(我只是觉得这不是一个整洁的代码!)
如果我理解正确的话,我认为你所写的可以表达为:
相关问题 更多 >
编程相关推荐