【发布时间】:2018-01-29 04:45:25
【问题描述】:
我有从mathematica 生成的a csv file,它看起来像这样:
with open('sample.csv','r') as f:
scsv =f.read()
print(scsv)
产量
"{-955.1999999999999, 1.5568236482421087, -0.03326937763412006}","{-955.1999999999999, 1.5568572873672764, -0.026663002665836356}","{-955.1999999999999, 1.5568909480671234, -0.01847982437149327}"
"{-950.4, 1.5568236482421087, -0.016625954967908727}","{-950.4, 1.5568572873672764, -0.001015311835489717}","{-950.4, 1.5568909480671234, 0.006326172704000158}"
"{-945.5999999999999, 1.5568236482421087, -0.04292903732414247}","{-945.5999999999999, 1.5568572873672764, -0.01602757944255171}","{-945.5999999999999, 1.5568909480671234, -0.014847744429619007}
我想把它变成 python 列表以获得 3D 绘图,这是我的尝试:
try:
# for Python 2.x
from StringIO import StringIO
except ImportError:
# for Python 3.x
from io import StringIO
import csv
with open('sample.csv','r') as f:
scsv =f.read()
g = StringIO(scsv)
reader = csv.reader(g,delimiter=',')
your_list = list(reader)
for row in reader:
print('\t'.join(row))
print(your_list)
这段代码产生:
[['{-955.1999999999999, 1.5568236482421087, -0.03326937763412006}', '{-955.1999999999999, 1.5568572873672764, -0.026663002665836356}', '{-955.1999999999999, 1.5568909480671234, -0.01847982437149327}'], ['{-950.4, 1.5568236482421087, -0.016625954967908727}', '{-950.4, 1.5568572873672764, -0.001015311835489717}', '{-950.4, 1.5568909480671234, 0.006326172704000158}'], ['{-945.5999999999999, 1.5568236482421087, -0.04292903732414247}', '{-945.5999999999999, 1.5568572873672764, -0.01602757944255171}', '{-945.5999999999999, 1.5568909480671234, -0.014847744429619007}']]
我不知道如何改进它,求助! :)
【问题讨论】:
-
所以基本上你想在 3D 图中绘制所有这 9 个点对吗?
-
是的。 :) 真实文件很大,sample.csv就是一个样本。
-
卡在第一步:导入csv文件,转成python列表。