Mathematica 从 .csv 导入大整数?

Posted

技术标签:

【中文标题】Mathematica 从 .csv 导入大整数?【英文标题】:Mathematica import large integers from .csv? 【发布时间】:2012-02-21 18:49:07 【问题描述】:

我正在将一些数据从 CSV 导入 Mathematica。 CSV 的前几行如下所示:

"a_use","tstart","tend"
"bind items on truck to prevent from flying off",1328661514469,1328661531032
"hang laundry on",1328661531035,1328661541700
"tie firewood with",1328661541702,1328661554940
"anchor tent",1328661554942,1328661559797

Mathematica 几乎完美地处理了这个问题:

data = Import["mystuff.csv"]

问题是那些大时间戳被转换成科学记数法,失去了精度:

In[283]:= data[[2,2]]
Out[283]= 1.32866*10^12

如您所见,即使 1328661531035 与 1328661541700 不同,导入的数据也不再精确到无法区分两者,因为两者都以 1.32866*10^12 的形式导入。我知道 Mathematica 可以处理任意长度的整数,那么我怎样才能让它将这些数字作为(大)整数导入,而不是将它们转换成这种有损的科学记数法呢?

【问题讨论】:

【参考方案1】:

你用的是什么版本?在 Mma 8.0.1 上没问题。

如果您在 Excel 中创建 CSV 文件,请将时间戳的格式设置为小数点为零的数字(通过更多数字格式...)

【讨论】:

谢谢!我确实是从 Excel 导出的,当我问我从 .xls 文件中复制的问题时,我是从 CSV 导入的,正如您所推测的那样,Excel 已经把我的大整数搞砸了。桌面上的窗口太多。再次感谢您,您为我节省了无数时间。

以上是关于Mathematica 从 .csv 导入大整数?的主要内容,如果未能解决你的问题,请参考以下文章

在 Mathematica 和 MIDI 踏板事件中叠加音乐曲目

处理从 csv 导入的大数据

mathematica中怎么定义一个变量为正整数?

将 csv 作为整数列表导入

在引号之间将csv列导入为整数

mathematica中的图像导出和导入不连贯