这是我的脚本,它有一些问题。我只想在VSTACK后使用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],d1[0,4], d1[1,8], d1[2,8]
z1=np.hstack([a11, a12, a13, a14, a15])
a1.append(z1)
print(z1)
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],d1[0,4], d1[1,9], d1[2,9]
z2=np.hstack([a11, a12, a13, a14, 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, a12, a13, a14, a15=d1[0,6], d1[0,7],d1[0,4], d1[1,8], d1[2,8]
z3=np.hstack([a11, a12, a13, a14, a15])
a3.append(z3)
else:
print('continue')
np.savetxt('output.txt', np.vstack([a1, a2, 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使用不同形状的数组是没有意义的
在循环中,您应该检查各个数组是否具有相同的形状。你可以用
它将根据数组的形状返回True或False。或者简单地使用异常来控制阵列形状不相同时的操作
另外,为了便于阅读,请尝试将代码复制到单独的块中,而不是一行中
相关问题 更多 >
编程相关推荐