问题描述
这是我的脚本,它有一些问题。我只想在 vstacking 之后使用 numpy savetxt 保存树变量 a1、a2、a3。当在循环中找到所有变量(a1、a2、a3)时,它运行良好。当其中一个以太发现为空时,它就会出现问题。那么,如何解决。任何帮助将不胜感激。
a1,a2,a3 =[],[],for a in xfile_UH:
print(a)
d1=np.genfromtxt(a,dtype=str,delimiter='',usecols=np.arange(0,10))
l=d1[0,5]
l1=d1[0,6]
m=d1[1,4]
n=d1[1,5]
p=d1[1,6]
r=d1[1,8]
q=d1[1,9]
if l=='L':
if m=='0':
if n=='0':
if p=='0':
if q=='0':
print(d1[0,0])
a11,a12,a13,a14,a15=d1[0,6],d1[0,7],4],d1[1,8],d1[2,8]
z1=np.hstack([a11,a15])
a1.append(z1)
print(z1)
if l=='L':
if m=='0':
if n=='0':
if p=='0':
if q>'0':
print(d1[0,9],9]
z2=np.hstack([a11,a15])
a2.append(z2)
if l=='L':
if m=='0':
if n=='0':
if p>'0':
if r>'0':
if q=='0':
print(d1[0,0])
a11,8]
z3=np.hstack([a11,a15])
a3.append(z3)
else:
print('continue')
np.savetxt('output.txt',np.vstack([a1,a3]),fmt='%s',delimiter=',') ` Error I found: raise ValueError('all input arrays must have the same shape')
ValueError: all input arrays must have the same shape
>>>
解决方法
据我所知,您的代码可以正常工作,除非 NumPy 会引发异常。这确实是意料之中的,因为 vstack 处理不同形状的数组是没有意义的。
在循环中,您应该检查各个数组是否具有相同的形状。你可以使用
a1.shape == a2.shape
它将根据数组的形状返回 True 或 False。或者简单地使用异常来控制在数组不具有相同形状的情况下该怎么做。
另外,为了更容易阅读,请尝试将您的代码复制到不同的块中,而不是一行。