有没有办法使用给定目录中的 numpy.genfromtxt 从 csv 读取数据?

Posted

技术标签:

【中文标题】有没有办法使用给定目录中的 numpy.genfromtxt 从 csv 读取数据?【英文标题】:Is there a way to read data from csv using numpy.genfromtxt from a given directory? 【发布时间】:2021-11-20 16:04:21 【问题描述】:

我应该通过 argparse 读取 csv 文件路径。例如,csv 文件的路径是 args.X,我该如何将这些数据加载到 2d numpy 数组中?现在我使用的是Data = np.genfromtxt(args.X, delimiter=","),这在 args.X 包含文件名而不是路径并且文件与 python 脚本位于同一文件夹中时有效。当数据不在同一个文件夹中并且我获得了文件的路径时如何读取?

【问题讨论】:

它会抛出任何错误吗?是FileNotFoundError 我的路径是 D:\Amit\ell409\2019anz1787\gaussian.csv 作为输入,错误是“D:Amitell4092019anz1787gaussian.csv not found” 这不是 Windows 中的有效路径...我想你的意思是 D:\\Amitell4092019anz1787gaussian.csv 对吧? 所有反斜杠都被杀死了。我会更新我的答案 【参考方案1】:

您似乎遇到了反斜杠消失的问题,这很奇怪。无论如何,您最好告诉 argparse 您想要一个 Path 对象(并使用一个)。你可能想要这样的代码:

import numpy as np
from pathlib import Path
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument("IN", type=Path)
parser.parse_args()

inf = args.IN.expanduser().resolve()
if not inf.exists():
    raise FileNotFoundError(f"No such file: inf")
Data = np.genfromtxt(inf, delimiter=",")

【讨论】:

谢谢!这行得通 如果确实如此,请随意接受 :) 作为在黑暗中的镜头,我认为某些字符串转义出了问题,因为您在错误消息中缺少 any 斜杠。但通常使用 Path 作为路径,它要容易得多 是的,事实证明,由于某些转义序列,斜线被丢弃

以上是关于有没有办法使用给定目录中的 numpy.genfromtxt 从 csv 读取数据?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用线段树在给定范围内查找数字的频率?

给定 O(1) 或 O(log N) 时间中的源集,有没有办法在数学上生成排序排列和数组的给定索引?

使用 Spark 列出 Hadoop HDFS 目录中的所有文件?

有没有办法手动修改从给定数据集中学习的决策树中设置的阈值?

有没有办法手动修改从给定数据集中学习的决策树中设置的阈值?

区分 C 和 C++ 中的 unix 目录和文件