Python:如何处理 numpy.loadtxt 出现的错误?类型错误:参数必须是整数

问题描述 投票:0回答:1

我正在编写 Python 代码,该代码接收 .csv 文件并使用其中的数据来创建图表。我正在使用 numpy.loadtxt 来完成此任务。我的代码开头如下:

import numpy

infile = 'dicomfile-test.csv'

print(sys.argv)
if len(sys.argv) > 1:
    infile = sys.argv[1]

xprompts, xrandoms, xduration, xheight, xweight, xdose, xuptime, xsf, xdtcf =\
    numpy.loadtxt(infile, delimiter=',',\
    dtype = 'float,float,float,float,float,float,float,float,float',\
    usecols = (0,1,2,3,4,5,6,7,8), unpack = True, skiprows = [1])

标有“xprompts”、“xrandoms”等的变量是 .csv 文件中每列的名称。每列有 9 行数字,代码应该在这些数字上运行。我出现的错误是:

Traceback (most recent call last):
  File "/Users/mycomputer/Desktop/Project/test-curve.py", line 28, in <module>
    np.loadtxt(infile, delimiter=',',\
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/numpy/lib/npyio.py", line 1338, in loadtxt
    arr = _read(fname, dtype=dtype, comment=comment, delimiter=delimiter,
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/numpy/lib/npyio.py", line 962, in _read
    _check_nonneg_int(skiplines)
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/numpy/lib/npyio.py", line 774, in _check_nonneg_int
    raise TypeError(f"{name} must be an integer") from None
TypeError: argument must be an integer

我对 Python 相当陌生,所以我很难理解要在代码中更改哪些内容来修复此错误。 TypeError 表示参数必须是整数,这就是我的困惑之处,因为 .csv 文件中的所有内容都是整数。任何帮助将不胜感激 - 谢谢!

python numpy error-handling traceback
1个回答
0
投票

这与数据无关,而是与参数

skiprows
有关,它必须是
int
而不是
list
。如果您想跳过第一行,请执行
skiprows=1
而不是
skiprows=[1]

来自文档:

skiprows : int, optional
        Skip the first `skiprows` lines, including comments; default: 0.
© www.soinside.com 2019 - 2024. All rights reserved.