Numpy np.array([args.width,args.width])和np.zero(5)的语法

Numpy np.array([args.width,args.width])和np.zero(5)的语法,numpy,argparse,Numpy,Argparse,我有一个包含这部分的脚本 parser = argparse.ArgumentParser() parser.add_argument('out', type=str, help="Output file (.pkl)") parser.add_argument('width', type=int, help="Frame width in px") parser.add_argument('height', type=int, help="Frame height in px") parser

我有一个包含这部分的脚本

parser = argparse.ArgumentParser()
parser.add_argument('out', type=str, help="Output file (.pkl)")
parser.add_argument('width', type=int, help="Frame width in px")
parser.add_argument('height', type=int, help="Frame height in px")
parser.add_argument('-f', type=float, nargs='?', help="Focal length in px (2,)")
parser.add_argument('-c', type=float, nargs='?', help="Principal point in px (2,)")
parser.add_argument('-k', type=float, nargs='?', help="Distortion coefficients (5,)")

args = parser.parse_args()

print args
camera_data = {
    'camera_t': np.zeros(3),
    'camera_rt': np.zeros(3),
    'camera_f': np.array([args.width, args.width]),
    'camera_c': np.array([args.width, args.height]) / 2.,
    'camera_k': np.zeros(5),
    'width': args.width,
    'height': args.height,
}
我试图输入
f
c
k
的值,但无法识别

例如,我编写了
-f800.0600.0
,得到了
错误:无法识别的参数:600.0
。 我试过
-f[800.0600.0]
-f(800.0600.0)
-f(800.0600.0)
,但都不起作用。 此外,谷歌索引的整个网站也没有给出“如何将数组作为参数输入python”的答案


脚本需要什么语法?

您可以随时更改
nargs=2
,第一种方法就可以了。但老实说:添加相关标记
argparse
,删除误导性的
numpy
(它根本没有被触碰过)标记,然后开始阅读argparse文档。对我们来说,这个脚本的来源、质量和上下文完全不存在。@sascha是它的来源吗-f只接受一个数字。为什么“?”?显示完整的命令行,而不仅仅是“-f”部分此脚本只能为“-f'、“-c'、“-k”中的每一个接受一个数字。查看链接中的其余代码,我认为脚本应该使用
nargs='*'
nargs=2
而不是
nargs='?'
。“?”是个错误。