我正在尝试使用numpy.savetxt()将两个字符串写入.txt文件。我希望字符串在连续的行上。但是,当我运行我的代码时,我收到以下错误:
ncol = X.shape[1]
IndexError: tuple index out of range
这发生在我调用np.savetxt()的第一行。我的代码如下:
import numpy as np
data=np.loadtxt('data.txt')
name1 = 'James'
name2 = 'James 2'
hi = 'Hello {}'.format(name1)
bye = 'Goodbye {}'.format(name2)
np.savetxt('greet.txt', hi, fmt="%s", newline='\n')
np.savetxt('greet.txt', bye, fmt="%s")
我已经尝试过没有fmt,将'%s'更改为其他内容,但它们都给了我同样的错误。谁能告诉我我做错了什么?
答案 0 :(得分:0)
根据@ moses-koledoye评论和@jvnna的回答,以下是正确的答案。
hi
和bye
变量的类型为string
hi = 'Hello {}'.format(name1)
bye = 'Goodbye {}'.format(name2)
根据文档,您正在尝试使用numpy函数np.savetxt
将它们保存到txt文件中。
将数组保存到文本文件。
因此hi
和bye
变量必须的类型为np.array
,以便使用该函数进行处理。另外,还需要一些重塑。
实现此目的的代码段代码可能是:
hi = 'Hello {}'.format(name1)
bye = 'Goodbye {}'.format(name2)
hi = np.array(hi).reshape(1, ) # This does the trick for hi
bye = np.array(bye).reshape(1, ) # This does the trick for bye
np.savetxt('greet.txt', hi, fmt="%s", newline='\n')
np.savetxt('greet.txt', bye, fmt="%s")