大家好:我是python的新手,对于你们中的一些人来说这个问题可能很简单。 我的详细信息问题(在我的任务的步骤中写作)如下:
我需要在高斯分布下生成10个随机2D点,这很容易:
Testing = np.random.multivariate_normal(mean, cov, 10)
其中mean,cov已经定义。
我需要将上述值存储到txt文件中,以便以后进行测试,这也是完成的:
with open("Testing.txt", "w") as f:
f.write(str(Testing))
在第3步中,我需要将步骤1中创建的所有10个点读取到新列表中并执行计算,我写道:
with open('Testing.txt') as f:
Data = f.read()
注意,上面两行代码是用不同于步骤1和脚本的脚本的单独脚本编写的。 2。
步骤3本身似乎没问题,因为如果我测试
print(Data)
它将在终端中打印出与txt文件中的值和格式相同的格式,问题是数据结构似乎与步骤1中创建的测试数据结构不同。例如,如果在步骤1中,我添加额外的一行
plt.scatter(Testing[:,0],Testing[:,1],c='yellow')
它将为我绘制10点积分。但是如果我在第3步的脚本中编写相同的命令
plt.scatter(Data[:,0],Data[:,1],c='yellow')
这将是一个错误“TypeError:字符串索引必须是整数,而不是元组”。显然,数据和测试的结构是不同的。有人可以帮我吗?谢谢!
答案 0 :(得分:0)
如果您在读取数据时使用NumPy函数进行文件输入输出,那么您得到的数据可以被切割为Data[:,0]
,例如:
第2步)np.savetxt("Testing.txt", Testing)
第3步)Data = np.loadtxt("Testing.txt", dtype=object)
。请注意,根据您的评论,您可能需要dtype=object
,您实际上正在阅读str
个对象。