Python 在argparse中使用numpy数据类型
我正在设置一个Argparse解析器,以便通过shell读取一些用户输入。输入将用于从包含字符串和数字的数据框中提取数据。我想在ArgparsePython 在argparse中使用numpy数据类型,python,numpy,pandas,user-input,argparse,Python,Numpy,Pandas,User Input,Argparse,我正在设置一个Argparse解析器,以便通过shell读取一些用户输入。输入将用于从包含字符串和数字的数据框中提取数据。我想在Argparse中自动设置type=参数。添加_argument()以匹配相应列的数据类型 我的想法是像这样设置Argparse参数,其中inputdata是数据帧: for c in inputdata.columns: inputname= c inputtype= np.dtype(inputdata[c]) par
中自动设置type=
参数。添加_argument()
以匹配相应列的数据类型
我的想法是像这样设置Argparse参数,其中inputdata是数据帧:
for c in inputdata.columns:
inputname= c
inputtype= np.dtype(inputdata[c])
parser.add_argument("--"+inputname, type=inputtype)
但是,这不起作用:Python会引发一个ValueError:dtype('int64')不可调用
。我想这是因为我没有正确地向它提供Numpy文件类型;例如,如果将inputtype设置为float,则所有操作都按照计划进行。如果手动输入type=np.int64
,Argparse对此也没有问题
- 如何让它接受数据帧中的文件类型,即上面所示的循环中的int64和object?我也尝试了一些选项,例如
,但没有任何效果dtype.type
- 或者这是不可能的?Argparse只声明
inputtype = np.dtype(inputdata[c]).type
或
.type
属性是可调用的,可用于创建该数据类型的新实例。在此上下文中,可调用的
通常是一个函数,它从输入中获取字符串并将其转换为其他内容。如果输入字符串格式不正确,则会引发错误<代码>np.int64('123')有效np.dtype('int64')('123')
没有。
inputtype = inputdata[c].dtype.type