gpt4 book ai didi

python - Numpy CSV fromfile()

转载 作者:行者123 更新时间:2023-12-01 01:09:03 25 4
gpt4 key购买 nike

我可能想在这里重新发明轮子,但是 numpy 有一个 fromfile() 函数,可以读取 - 我想 - CSV 文件。

它的速度似乎令人难以置信 - 即使与 Pandas read_csv() 相比,但我不清楚它是如何工作的。

这是一些测试代码:

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() 以确保它不只读取一行。但奇怪的是,我的长度(根据随机数生成而变化)是 1,352,244。啊?

The docs显示可选的 sep 参数。但当使用它时:

arr = np.fromfile(filename, sep = ',')

...我们得到的长度为 0?!

理想情况下,我能够从此 CSV 文件加载二维数组,但我会选择此 CSV 文件中的单个数组。

我在这里缺少什么?

最佳答案

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

来自文档:

A highly efficient way of reading binary data with a known data-type, as well as parsing simply formatted text files. Data written using the tofile method can be read using this function.

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

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

关于python - Numpy CSV fromfile(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55031526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com