Numpy CSV fromfile()

时间:2019-03-06 20:18:48

标签: python pandas csv numpy

我可能在这里尝试重新发明轮子,但是numpy具有SELECT T1.SC, T1.AN, T1.DOFS_DATE, T2.M_ID, T3.OPDT, T4.MARKER, T5.E_DTE, T5.E_TME, T5.E_PST_DTE, T5.E_AMT, T5.E_NAR_O, T5.E_NAR_T FROM E_Base.AR_MyTable T1 LEFT JOIN E_Base.Translation T2 ON T1.SC = T2.SC AND T1.AN = T2.AN LEFT JOIN E_Base.BA T3 ON T2.M_ID = T3.M_ID LEFT JOIN E_Base.APF T4 ON T3.M_ID = T4.M_ ID AND MARKER = 54 LEFT JOIN U_DB.TEH_201804 T5 ON T2.M_ID = T5.M_ID AND T1.DOFS_DATE = T5.E_PST_DTE QUALIFY ROW_NUMBER() OVER (PARTITION BY T2.M_ID ORDER BY T2.ID_END_DATE DESC, T3.E_END_DATE DESC) = 1 函数,可以读取-我想-CSV文件。

与熊猫<td><input type="checkbox" name="check[]" id="opt-<?php echo $row->id; ?>" value="<?php echo $row->id; ?>" onclick="valueChanged()"> </td> 相比,它的运行速度似乎非常快,但是我不清楚它是如何工作的。

下面是一些测试代码:

fromfile()

我在末尾加入了read_csv(),以确保它不会只读取一行。但奇怪的是,我的长度(将根据您生成的随机数而有所不同)为1,352,244。嗯?

The docs显示可选的import pandas as pd import numpy as np # Create the file here, two columns, one million rows of random numbers. filename = 'my_file.csv' df = pd.DataFrame({'a':np.random.randint(100,10000,1000000), 'b':np.random.randint(100,10000,1000000)}) df.to_csv(filename, index = False) # Now read the file into memory. arr = np.fromfile(filename) print len(arr) 参数。但是,当使用它时:

len()

...长度为0?!

理想情况下,我可以从此CSV文件加载2D数组数组,但是我希望从此CSV文件中获取单个数组。

我在这里想念什么?

1 个答案:

答案 0 :(得分:2)

numpy.fromfile不是用来读取.csv文件,而是用来读取用numpy.ndarray.tofile方法写入的数据。

从文档中

  

一种读取具有已知数据类型的二进制数据以及解析格式简单的文本文件的高效方法。 使用tofile方法写入的数据可以使用此功能读取。

通过不带sep参数的使用,numpy假定您正在读取二进制文件,因此长度不同。当您指定分隔符时,我猜该函数会中断。

要使用numpy读取.csv文件,我认为您可以使用numpy.genfromtextnumpy.loadtxt(来自question)。